【Docker】イメージ コマンド一覧
Docker
2024/02/17
2024/01/28
build
Dockerfileからイメージを作成します。
$ docker image build [オプション] {Dockerfileのパス}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--file | -f | Dockerfileのファイル名(パス)を指定(デフォルトはDockerfile) | |
--tag | -t | イメージ名及びタグを指定(name:tag )指定しなかった場合<none> となる | |
--target | ビルド対象のステージを指定 |
例1
$ docker image build -t myimage:latest .
例2
$ docker image build -f Dockerfile_test -t test_image:0.1 .
history
イメージの履歴を表示します。
$ docker image hisotry [オプション] {イメージ}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--format | table | 表示内容をカスタマイズする(table ,table TEMPLATE , json , TEMPLATE ) |
フォーマット項目 | 説明 |
---|---|
.ID | イメージID |
.CreatedSince | イメージ作成からの経過時間またはイメージ作成時刻 |
.CreatedAt | イメージ作成時のタイムスタンプ |
.CreatedBy | イメージ作成時に使用したコマンド |
.Size | イメージのサイズ |
.Comment | イメージに対するコメント |
例
$ docker image hisotry ubuntu
IMAGE CREATED CREATED BY SIZE COMMENT
e2e172ecd069 2 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ADD file:5703a6689620ec495… 69.3MB
<missing> 2 weeks ago /bin/sh -c #(nop) LABEL org.opencontainers.… 0B
<missing> 2 weeks ago /bin/sh -c #(nop) LABEL org.opencontainers.… 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ARG RELEASE 0B
import
アーカイブファイル(.tar, .tar.gz, .tgz, .bzip, .tar.xz, txz)を読み込みます。
$ docker image import [オプション] {ファイルパスまたはURL} {読み込んだリポジトリ(:タグ)}
例
$ docker image import test.tar test:1.0
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
test 1.0 646827926ce2 4 seconds ago 71.9MB
inspect
イメージの情報を表示します。
$ docker image inspect [オプション] {イメージ}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--format | -f | 表示内容をカスタマイズする(json , TEMPLATE ) |
例
$ docker image inspect -f "{{json .Config.Env}}" nginx
["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","NGINX_VERSION=1.25.3","NJS_VERSION=0.8.2","PKG_RELEASE=1~bookworm"]
load
tarファイルからイメージを読み込みます。tarファイルはgzip、bzip2、xz、zstdで圧縮されていても読み込むことができます。
$ docker image load [オプション]
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--input | -i | 読み込むtarファイルを指定する |
例1
$ docker image load < test.tar #標準入力(STDIN)
例2
$ docker image load -i test.tar
ls
イメージの一覧を表示します。
$ docker image ls [オプション] {リポジトリ(:タグ)}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--all | -a | すべてのイメージを表示する(デフォルトでは中間イメージは非表示) | |
--digests | DIGESTS を表示項目に加える | ||
--filter | -f | 表示対象をフィルタリングする | |
--format | table | 表示内容をカスタマイズする(table ,table TEMPLATE , json , TEMPLATE ) | |
--no-trunc | 値の省略を行わない | ||
--quiet | -q | ID のみを表示する |
フォーマット項目 | 説明 |
---|---|
.ID | イメージID |
.Repository | リポジトリ |
.Tag | イメージのタグ |
.Digest | イメージのdigest値 |
.CreatedSince | イメージ作成からの経過時間 |
.CreatedAt | イメージ作成時のタイムスタンプ |
.Size | イメージのサイズ |
例1
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest e2e172ecd069 2 weeks ago 69.3MB
nginx latest 6c7be49d2a11 3 months ago 192MB
例2
$ docker image ls -q
e2e172ecd069
6c7be49d2a11
--filter
dangling
タグあり(false
)、タグなし(true
)のどちらかを表示します。dangling=false$ docker image ls --filter "dangling=false" REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest e2e172ecd069 2 weeks ago 69.3MB
dangling=true$ docker image ls --filter "dangling=true" REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> c1eb287ec8b9 44 minutes ago 71.9MB
label
ラベルを指定して表示します。ラベルはdocker image inspect
のContainerConfig.Labels
に該当します。ラベルの取得$ docker image inspect --format "{{json .ContainerConfig.Labels}}" ubuntu {"org.opencontainers.image.ref.name":"ubuntu","org.opencontainers.image.version":"22.04"}
label=<LABEL>$ docker image ls --filter "label=org.opencontainers.image.ref.name" REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest e2e172ecd069 2 weeks ago 69.3MB
label=<LABEL>=<VALUE>$ docker image ls --filter "label=org.opencontainers.image.version=22.04" REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest e2e172ecd069 2 weeks ago 69.3MB
before
指定したイメージより前に作成されたイメージを表示します。フィルタなし$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE image3 latest e3389e8b6d3d 30 seconds ago 69.3MB image2 latest f5dd3bd35cc1 32 seconds ago 69.3MB image1 latest 089466648891 42 seconds ago 69.3MB
before$ docker image ls --filter "before=image3" REPOSITORY TAG IMAGE ID CREATED SIZE image2 latest f5dd3bd35cc1 About a minute ago 69.3MB image1 latest 089466648891 About a minute ago 69.3MB
since
指定したイメージより後に作成されたイメージを表示します。since$ docker image ls --filter "since=image1" REPOSITORY TAG IMAGE ID CREATED SIZE image3 latest e3389e8b6d3d About a minute ago 69.3MB image2 latest f5dd3bd35cc1 About a minute ago 69.3MB
reference
リポジトリ+タグがパターンに一致するイメージを表示します。フィルタなし$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE image3 1.0 21868a451c64 59 seconds ago 69.3MB image2 1.0 bcde97e41e38 About a minute ago 69.3MB image1 1.0 3ec9dbc92993 About a minute ago 69.3MB image3 latest e3389e8b6d3d 8 minutes ago 69.3MB image2 latest f5dd3bd35cc1 8 minutes ago 69.3MB image1 latest 089466648891 8 minutes ago 69.3MB
reference$ docker image ls --filter "reference=image1:*" REPOSITORY TAG IMAGE ID CREATED SIZE image1 1.0 3ec9dbc92993 About a minute ago 69.3MB image1 latest 089466648891 9 minutes ago 69.3MB
reference$ docker image ls --filter "reference=*:latest" REPOSITORY TAG IMAGE ID CREATED SIZE image3 latest e3389e8b6d3d 10 minutes ago 69.3MB image2 latest f5dd3bd35cc1 10 minutes ago 69.3MB image1 latest 089466648891 10 minutes ago 69.3MB
prune
使用されていないイメージをすべて削除します。デフォルトでは、タグづけがされていない、かつどのコンテナからも参照されていないものが対象となります。
$ docker image prune [オプション]
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--all | -a | コンテナから参照されていないすべてのイメージを対象とする(タグづけの有無は関係なくなる) | |
--filter | 削除対象をフィルタリングする | ||
--force | -f | コマンド実行時の確認を省略する |
例
$ docker image prune -a
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N]
filter
until
指定したタイムスタンプより前に作成されたイメージのみ削除します。削除前$ docker image ls --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.CreatedAt}}" REPOSITORY TAG IMAGE ID CREATED AT ubuntu latest e2e172ecd069 2024-01-12 02:03:15 +0900 JST nginx latest 6c7be49d2a11 2023-10-25 07:44:45 +0900 JST hello-world latest ee301c921b8a 2023-05-03 01:49:27 +0900 JST
until$ docker image prune -a --filter "until=2024-01-01T00:00:00"
削除後$ docker image ls --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.CreatedAt}}" REPOSITORY TAG IMAGE ID CREATED AT ubuntu latest e2e172ecd069 2024-01-12 02:03:15 +0900 JST
label
docker image ls
と同様のため割愛します。
pull
レジストリからイメージを取得します。
$ docker image pull [オプション] {リポジトリ(:タグ)}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--all-tags | -a | 対象リポジトリのすべてのタグを取得する |
例
$ docker image pull ubuntu:20.04
push
レジストリにイメージを登録します。
$ docker image push [オプション] {リポジトリ(:タグ)}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--all-tags | -a | 対象リポジトリのすべてのタグを登録する |
例
$ docker image push myimage:latest
rm
イメージを削除します。デフォルトではコンテナから参照されているイメージは削除できません。
$ docker image rm [オプション] {イメージ}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--force | -f | 強制的にイメージを削除する(コンテナはそのまま残る) |
例
$ docker image rm ubuntu
save
イメージをtarファイルとして保存します。
$ docker image save [オプション] {イメージ}
オプション | 省略形 | デフォルト | 説明 |
---|---|---|---|
--output | -o | 保存するファイル名を指定 |
例1
$ docker image save ubuntu > test.tar #標準出力(STDOUT)
例2
$ docker image save -o test.tar ubuntu
例3
$ docker image save ubuntu | gzip > test.tar.gz
tag
対象のイメージに対するタグを作成します。
$ docker image tag {作成元イメージ} {作成するタグ(イメージ)}
例1
$ docker image tag ubuntu ubuntu:mytag
$ dpcker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest e2e172ecd069 2 weeks ago 69.3MB
ubuntu mytag e2e172ecd069 2 weeks ago 69.3MB
例
$ docker image tag ubuntu test
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
test latest e2e172ecd069 2 weeks ago 69.3MB
ubuntu latest e2e172ecd069 2 weeks ago 69.3MB
補足
--format
docker image inspect
やdocker image ls
などで表示する形式や項目を指定します。
TEMPLATE
表示する文字列の形式を指定します。
TEMPLATE
$ docker image ls --format '{{.ID}}:{{.Repository}}:{{.Tag}}'
e2e172ecd069:ubuntu:latest
table
テーブル形式で表示する項目を指定します。
table
$ docker image ls --format 'table {{.ID}}\t{{.Repository}}\t{{.Tag}}'
IMAGE ID REPOSITORY TAG
e2e172ecd069 ubuntu latest
json
json形式で表示する項目を指定します。
json
$ docker image inspect -f "{{json .Config.Env}}" nginx
["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","NGINX_VERSION=1.25.3","NJS_VERSION=0.8.2","PKG_RELEASE=1~bookworm"]
join
リスト(配列)を連結して表示します。
join
$ docker image inspect --format '{{join .ContainerConfig.Cmd ","}}' ubuntu
/bin/sh,-c,#(nop) ,CMD ["/bin/bash"]
lower
すべて小文字で表示します。
lower
$ docker image ls --format '{{.Repository}}\t{{lower .Size}}'
ubuntu 69.3mb
title
最初の文字を大文字で表示します。
title
$ docker image ls --format '{{title .Repository}}\t{{.Size}}'
Ubuntu 69.3MB
upper
すべて大文字で表示します。
upper
$ docker image ls --format '{{upper .Repository}}\t{{.Size}}'
UBUNTU 69.3MB
split
指定した文字で分割し、文字列リストとして表示します。
split
$ docker image inspect --format '{{split .Created "T"}}' ubuntu
[2024-01-11 17:03:15.951656381Z]
println
改行を挿入します。
split
$ docker image ls --format '{{println .ID}}{{.Repository}}\t{{.Tag}}'
e2e172ecd069
ubuntu latest