はじめに

本記事では、Dockerでのイメージ操作に関する主要コマンドを、目的別に整理して解説します。各コマンドの基本構文、主要オプション、出力例を網羅しており、初学者から実務者までのリファレンスとして活用できます。

イメージの確認と情報取得

イメージ一覧(ls)

ローカルに存在するDockerイメージを一覧表示します。

1
$ docker image ls [オプション] [リポジトリ[:タグ]]
オプション 省略形 デフォルト 説明
--all -a 中間イメージを含むすべてのイメージを表示
--digests DIGESTS列を表示に追加
--filter -f 表示対象を絞り込み
--format table テンプレートによる出力整形(table, json, TEMPLATEなど)
--no-trunc 出力を省略せずに表示
--quiet -q イメージIDのみ表示

出力例

1
2
3
4
5
6
7
8
$ docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
ubuntu       latest    e2e172ecd069   2 weeks ago    69.3MB
nginx        latest    6c7be49d2a11   3 months ago   192MB

$ docker image ls -q
e2e172ecd069
6c7be49d2a11

フィルタ(–filter)の使用例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# タグが付いていない中間イメージを表示
$ docker image ls --filter "dangling=true"

# ラベルでフィルタ
$ docker image ls --filter "label=org.opencontainers.image.version=22.04"

# 作成順でフィルタ
$ docker image ls --filter "before=nginx"
$ docker image ls --filter "since=ubuntu"

# リポジトリ+タグでパターンマッチ
$ docker image ls --filter "reference=ubuntu:*"

詳細情報の取得(inspect)

イメージの設定内容(環境変数、ラベル、エントリポイントなど)を確認できます。

1
$ docker image inspect [オプション] イメージ名
オプション 省略形 デフォルト 説明
--format -f 出力内容をテンプレートで整形

出力例

1
2
$ 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"]

履歴の確認(history)

イメージがどのように構築されたかを確認できます。

1
$ docker image history [オプション] イメージ名
オプション 省略形 デフォルト 説明
--format table 表示形式のカスタマイズ

出力例

1
2
3
4
$ docker image history 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:...                   69.3MB

イメージの作成と管理

ビルド(build)

Dockerfile から新しいイメージを作成します。

1
$ docker image build [オプション] パス
オプション 省略形 デフォルト 説明
--file -f 使用する Dockerfile のパス(省略時は ./Dockerfile
--tag -t イメージ名とタグを指定(例:myimage:latest
--target マルチステージビルドでのステージ指定

使用例

1
2
$ docker image build -t myimage:latest .
$ docker image build -f Dockerfile.dev -t devimage:1.0 .

タグ付け(tag)

既存のイメージに別の名前(タグ)を付けます。

1
$ docker image tag 元イメージ 新しい名前[:タグ]

使用例

1
2
$ docker image tag ubuntu ubuntu:mytag
$ docker image tag ubuntu registry.example.com/test:1.0

レジストリとの送受信

プッシュ(push)

イメージをリモートレジストリにアップロードします。

1
$ docker image push [オプション] リポジトリ[:タグ]
オプション 省略形 デフォルト 説明
--all-tags -a 対象リポジトリの全タグを送信

使用例

1
$ docker image push myimage:latest

プル(pull)

リモートレジストリからイメージを取得します。

1
$ docker image pull [オプション] リポジトリ[:タグ]
オプション 省略形 デフォルト 説明
--all-tags -a 対象リポジトリの全タグを取得

使用例

1
$ docker image pull ubuntu:20.04

イメージの保存と読み込み

保存(save)

Dockerイメージを .tar ファイルとして保存します。バックアップや他環境への持ち運びに便利です。

1
$ docker image save [オプション] イメージ名
オプション 省略形 デフォルト 説明
--output -o 保存先ファイル名を指定

使用例

1
2
$ docker image save -o test.tar ubuntu
$ docker image save ubuntu | gzip > test.tar.gz

読み込み(load)

save で保存した .tar ファイルからイメージを復元します。ファイルは gzip, bzip2, xz, zstd 圧縮でも可です。

1
$ docker image load [オプション]
オプション 省略形 デフォルト 説明
--input -i 読み込むファイル名を指定

使用例

1
2
$ docker image load < test.tar
$ docker image load -i test.tar

インポート(import)

アーカイブファイルからイメージを新たに生成します。save/load とは異なり、ファイルシステムのスナップショットから構築されます。

1
$ docker image import [オプション] ファイルパス リポジトリ[:タグ]

使用例

1
$ docker image import test.tar test:1.0

イメージの削除と整理

単体削除(rm)

指定したDockerイメージを削除します。コンテナがそのイメージを参照している場合、デフォルトでは削除できません。

1
$ docker image rm [オプション] イメージ名
オプション 省略形 デフォルト 説明
--force -f コンテナから参照されていても強制削除

使用例

1
$ docker image rm ubuntu

未使用イメージの一括削除(prune)

未使用かつタグが付いていない「danglingイメージ」を削除します。--all を付けると、タグ付きでも未使用であれば削除対象になります。

1
$ docker image prune [オプション]
オプション 省略形 デフォルト 説明
--all -a タグ付きの未使用イメージも対象に含める
--filter 削除対象の条件指定(untillabel
--force -f 確認メッセージを省略して即削除

使用例

1
$ docker image prune -a

フィルタの例:until

指定日時以前に作成されたイメージを削除対象とします。

1
$ docker image prune -a --filter "until=2024-01-01T00:00:00"

フィルタの例:label

ラベルを条件に削除対象を絞り込めます。

1
$ docker image prune -a --filter "label=stage=dev"

出力整形と条件指定の応用

条件指定(–filter)

--filterlsprune など複数のコマンドで使用でき、対象を細かく絞り込むのに有効です。

フィルタ項目 説明 使用例
dangling タグなしイメージの抽出 --filter "dangling=true"
label ラベルで条件指定 --filter "label=stage=dev"
before / since 特定のイメージより前後でフィルタ --filter "before=nginx"
reference リポジトリ+タグのパターン --filter "reference=ubuntu:*"
until 日時より前に作成されたもの(prune 限定) --filter "until=2024-01-01"

出力整形(–format)

Goテンプレート構文を用いて出力をカスタマイズできます。

使用例

1
2
3
4
5
# リポジトリとタグを並べて表示
$ docker image ls --format '{{.Repository}}:{{.Tag}}'

# 表形式で整形出力
$ docker image ls --format 'table {{.ID}}\t{{.Repository}}\t{{.Tag}}'

主なテンプレート関数

関数名 説明 使用例
join 配列を結合 {{join .Config.Cmd " "}}
split 文字列を区切って配列化 {{split .Created "T"}}
lower / upper 大文字・小文字変換 {{upper .Repository}}
title 先頭のみ大文字化 {{title .Repository}}
json JSON形式で出力 {{json .Config.Env}}
println 改行出力 {{println .ID}}{{.Repository}}

使用例

1
2
$ docker image inspect --format '{{json .Config.Env}}' nginx
$ docker image ls --format '{{title .Repository}}\t{{.Size}}'

まとめ

本記事では、Dockerイメージの操作に関するコマンドを、以下の観点から体系的に解説しました。

  • イメージの確認と詳細情報の取得(ls, inspect, history
  • イメージの作成とレジストリとの連携(build, tag, push, pull
  • イメージの保存と復元(save, load, import
  • イメージの削除と整理(rm, prune
  • フィルタリングと出力整形の応用(--filter, --format

各コマンドの基本構文・主要オプション・実行例を網羅しており、初学者の学習用途から、実務における運用・自動化のリファレンスとしても役立ちます。

特に、複数イメージを扱う場面やCI/CD環境では、--filter を活用した選別や、--format による出力制御が有効です。Dockerイメージの管理スキルを高めることで、より再現性と保守性の高い開発運用が実現できます。