Docker
画像の管理
サーチ…
構文
- ドッカー画像[オプション] [リポジトリ[:TAG]]
- docker inspect [オプション] CONTAINER | IMAGE [CONTAINER | IMAGE ...]
- ドッカープル[オプション]名前[:TAG | @DIGEST]
- ドッカーrmi [オプション]イメージ[イメージ...]
- ドッカータグ[オプション]画像[:タグ] [レジストリホスト/] [ユーザー名/]名前[:TAG]
Docker Hubから画像を取得する
通常、画像はDocker Hubから自動的に取得されます。 Dockerは、Dockerホスト上にまだ存在していないDocker Hubから画像を取得しようとします。例えば、使用してdocker run ubuntu
するときubuntu
イメージがドッカーホストになっていないのは、ドッカーは、最新のプルを開始しますubuntu
イメージを。 docker pull
を使用してDocker Hubから手動でイメージを取得または更新することによって、イメージを個別にプルすることができます。
docker pull ubuntu
docker pull ubuntu:14.04
別のイメージレジストリからプルする、または特定のバージョンのイメージをプルするための追加オプションが存在します。代替レジストリを示すには、フルイメージ名とオプションのバージョンを使用します。たとえば、次のコマンドは、 ubuntu:14.04
イメージをregistry.example.com
レジストリからubuntu:14.04
しようとします。
docker pull registry.example.com/username/ubuntu:14.04
ローカルにダウンロードされた画像の一覧表示
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 693bce725149 6 days ago 967 B
postgres 9.5 0f3af79d8673 10 weeks ago 265.7 MB
postgres latest 0f3af79d8673 10 weeks ago 265.7 MB
画像の参照
イメージの名前を取るDockerコマンドは、4つの異なる形式を受け入れます。
タイプ | 例 |
---|---|
ショートID | 693bce725149 |
名 | hello-world (デフォルトは:latest タグ) |
名前+タグ | hello-world:latest |
ダイジェスト | hello-world@sha256:e52be8ffeeb1f374f440893189cd32f44cb166650e7ab185fa7735b7dc48d619 |
注:画像がそのダイジェストを使用して最初に引っ張られた場合にのみ、ダイジェストで画像を参照できます。イメージのダイジェストを表示するには(使用可能な場合)、 docker images --digests
実行します。
画像の削除
docker rmi
コマンドはイメージを削除するために使用されます:
docker rmi <image name>
イメージを削除するには、完全なイメージ名を使用する必要があります。イメージにレジストリ名を削除するタグが付いていない限り、レジストリ名を指定する必要があります。例えば:
docker rmi registry.example.com/username/myAppImage:1.3.5
代わりにIDで画像を削除することもできます:
docker rmi 693bce725149
便宜上、指定された部分文字列が曖昧でない限り、画像IDの最初の数文字だけを指定することで、画像IDで画像を削除することができます。
docker rmi 693
注:イメージは、そのイメージを使用する既存のコンテナがあっても削除できます。ドッカーrmiはイメージを単に「タグ付け」しません。
コンテナが画像を使用していない場合は、ガベージコレクションされます。コンテナがイメージを使用している場合、それを使用するすべてのコンテナが削除されると、そのイメージはガベージコレクションされます。例えば:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5483657ee07b hello-world "/hello" Less than a second ago Exited (0) 2 seconds ago small_elion
$ docker rmi hello-world
Untagged: hello-world:latest
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5483657ee07b 693bce725149 "/hello" Less than a second ago Exited (0) 12 seconds ago small_elion
開始されていないコンテナですべてのイメージを削除する
開始コンテナのないすべてのローカルイメージを削除するには、イメージのリストをパラメータとして指定します。
docker rmi $(docker images -qa)
すべての画像を削除
開始されたコンテナがあるかどうかにかかわらずイメージを削除するには、強制フラグ( -f
)を使用します。
docker rmi -f $(docker images -qa)
ダングリング画像を削除する
イメージがタグ付けされておらず、コンテナによって使用されていない場合、イメージは「ぶら下がっている」ため、次のように削除される可能性があります。
docker images -q --no-trunc -f dangling=true | xargs -r docker rmi
Docker Hubで画像を検索する
検索コマンドを使用すると、 Docker Hubで画像を検索できます。
docker search <term>
例えば:
$ docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 3565 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 717 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 232 [OK]
...
画像の検査
docker inspect <image>
出力はJSON形式です。 jq
コマンドラインユーティリティを使用して、目的のキーのみを解析して印刷することができます。
docker inspect <image> | jq -r '.[0].Author'
上記のコマンドは画像の作者名を表示します。
画像にタグを付ける
画像にタグを付けると、さまざまな画像のバージョンを追跡するのに便利です。
docker tag ubuntu:latest registry.example.com/username/ubuntu:latest
タグ付けの別の例:
docker tag myApp:1.4.2 myApp:latest
docker tag myApp:1.4.2 registry.example.com/company/myApp:1.4.2
Dockerイメージの保存と読み込み
docker save -o ubuntu.latest.tar ubuntu:latest
このコマンドは、 ubuntu:latest
イメージを現在のディレクトリにubuntu.latest.tar
という名前のtarballアーカイブとして保存します。このtarballアーカイブは、 rsync
などを使用して別のホストに移動するか、ストレージにアーカイブすることができます。
tarballが移動されると、次のコマンドはファイルからイメージを作成します:
docker load -i /tmp/ubuntu.latest.tar
現在、 ubuntu:latest
からコンテナを作成することは可能です。通常のようにubuntu:latest
イメージです。