【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.9MBinspect
イメージの情報を表示します。
$ 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.tarls
イメージの一覧を表示します。
$ 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.3MBdangling=true$ docker image ls --filter "dangling=true" REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> c1eb287ec8b9 44 minutes ago 71.9MBlabel
ラベルを指定して表示します。ラベルは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.3MBlabel=<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.3MBbefore
指定したイメージより前に作成されたイメージを表示します。フィルタなし$ 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.3MBbefore$ 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.3MBsince
指定したイメージより後に作成されたイメージを表示します。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.3MBreference
リポジトリ+タグがパターンに一致するイメージを表示します。フィルタなし$ 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.3MBreference$ 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.3MBreference$ 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 JSTuntil$ 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 JSTlabeldocker image lsと同様のため割愛します。
pull
レジストリからイメージを取得します。
$ docker image pull [オプション] {リポジトリ(:タグ)}| オプション | 省略形 | デフォルト | 説明 |
|---|---|---|---|
--all-tags | -a | 対象リポジトリのすべてのタグを取得する |
例
$ docker image pull ubuntu:20.04push
レジストリにイメージを登録します。
$ docker image push [オプション] {リポジトリ(:タグ)}| オプション | 省略形 | デフォルト | 説明 |
|---|---|---|---|
--all-tags | -a | 対象リポジトリのすべてのタグを登録する |
例
$ docker image push myimage:latestrm
イメージを削除します。デフォルトではコンテナから参照されているイメージは削除できません。
$ docker image rm [オプション] {イメージ}| オプション | 省略形 | デフォルト | 説明 |
|---|---|---|---|
--force | -f | 強制的にイメージを削除する(コンテナはそのまま残る) |
例
$ docker image rm ubuntusave
イメージを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.gztag
対象のイメージに対するタグを作成します。
$ 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:latesttable
テーブル形式で表示する項目を指定します。
table
$ docker image ls --format 'table {{.ID}}\t{{.Repository}}\t{{.Tag}}'
IMAGE ID REPOSITORY TAG
e2e172ecd069 ubuntu latestjson
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.3mbtitle
最初の文字を大文字で表示します。
title
$ docker image ls --format '{{title .Repository}}\t{{.Size}}'
Ubuntu 69.3MBupper
すべて大文字で表示します。
upper
$ docker image ls --format '{{upper .Repository}}\t{{.Size}}'
UBUNTU 69.3MBsplit
指定した文字で分割し、文字列リストとして表示します。
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