
【Docker基礎】イメージの削除
ここでは、Dockerのコンテナ操作の流れの一環として、Dockerイメージの削除方法について学びます。これまでにコンテナを作成・起動・停止・削除する手順を学びましたが、コンテナを削除しても、それに基づくイメージはシステムに残ったままです。イメージが蓄積されると、ストレージを圧迫し、システムのパフォーマンスに影響を及ぼす可能性があるため、不要なイメージは適宜削除することが推奨されます。

イメージが残る理由
Dockerでは、イメージはコンテナのテンプレートとして機能します。コンテナを削除しても、元となるイメージは削除されないため、再度同じイメージからコンテナを作成することが可能です。この仕組みにより、イメージを再利用することで効率的にコンテナを管理できます。しかし、コンテナを多数作成・削除する際には、不要なイメージが溜まってしまう問題が発生します。
イメージを削除する重要性

イメージが増え続けると、ディスクスペースを圧迫するだけでなく、システムの管理が煩雑になる可能性があります。そのため、使用しなくなったイメージは定期的に削除し、システムの健全性を維持することが重要です。
イメージの削除方法
Dockerイメージを削除するには、docker image rm
コマンドを使用します。このコマンドは、イメージ名またはイメージIDを指定して実行します。ただし、イメージを削除する前に、そのイメージから作成されたすべてのコンテナが削除されている必要があります。コンテナが存在する場合、イメージの削除は拒否されます。
イメージ削除の前提条件
- 削除対象のイメージから作成されたすべてのコンテナが停止・削除されていること。
- 他のイメージやコンテナが依存していないこと。
使用するコマンドの概要
以下に、本章で使用する主なDockerコマンドとその説明をまとめます。
コマンド | 説明 |
---|---|
docker image ls | 現在のイメージ一覧を表示する。 |
docker image rm | 指定したイメージを削除する。 |
docker ps -a | すべてのコンテナ(稼働中および停止中)を表示する。 |
docker stop | 指定したコンテナを停止する。 |
docker rm | 指定したコンテナを削除する。 |
各コマンドの詳細
1.docker image ls
現在ローカルに存在するDockerイメージの一覧を表示します。このコマンドを使用して、削除したいイメージの名前やIDを確認します。
オプション | 説明 |
---|---|
なし | デフォルトでイメージの一覧を表示する |
実行例
docker image ls
実行結果の例
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f876bfc1cc63 5 weeks ago 192MB
mysql latest 56a8c14e1404 2 months ago 603MB
httpd latest 4ce47c750a58 5 months ago 147MB
hello-world latest d2c94e258dcb 20 months ago 13.3kB
実行結果の意味
項目 | 内容 |
---|---|
REPOSITORY | イメージ名 |
TAG | バージョン情報。指定しない場合は「latest(最新版)」が使用される。 |
IMAGE ID | イメージID。先頭12文字のみで十分に識別可能 |
CREATED | イメージが作成されてからの経過時間 |
SIZE | イメージのファイルサイズ |
2.docker image rm
指定したイメージを削除します。イメージ名またはイメージIDを指定することで削除が可能です。複数のイメージを同時に削除することもできます。
オプション | 説明 |
---|---|
イメージ名 または イメージID | 削除対象のイメージを指定する。スペース区切りで複数指定可能。 |
実行例
docker image rm nginx mysql
実行結果の例
Untagged: nginx:latest
Untagged: mysql:latest
Deleted: f876bfc1cc63a1234567890abcdef1234567890abcdef1234567890abcdef1234
Deleted: 56a8c14e1404a1234567890abcdef1234567890abcdef1234567890abcdef1234
注意点
- イメージが使用中の場合: 削除しようとしたイメージを基に作成されたコンテナが存在する場合、イメージの削除は拒否されます。その場合は、まず関連するコンテナを停止・削除する必要があります。
- 複数イメージの削除: スペース区切りで複数のイメージを指定することで、一度に複数のイメージを削除できます。
3.docker ps -a
すべてのコンテナ(稼働中および停止中)を表示します。このコマンドを使用して、削除対象のイメージから作成されたコンテナが存在しないか確認します。
オプション | 説明 |
---|---|
-a | すべてのコンテナを表示する |
実行例
docker ps -a
実行結果の例
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1b2c3d4e5f6 hello-world "/hello" 46 hours ago Exited (0) 2 hours ago frosty_sinoussi
確認ポイント
- 削除対象のイメージから作成されたコンテナが一覧に存在しないこと。
4.docker stop
指定したコンテナを停止します。イメージを削除する前に、関連するコンテナを停止する必要があります。
オプション | 説明 |
---|---|
コンテナ名 | 停止対象のコンテナを指定する |
実行例
docker stop MysqlServer
実行結果の例
MysqlServer
解説
docker stop
コマンドは、指定したコンテナの動作を停止します。実行結果として、停止されたコンテナ名が表示されます。
5.docker rm
指定したコンテナを削除します。イメージを削除する前に、関連するコンテナを削除する必要があります。
オプション | 説明 |
---|---|
コンテナ名 | 削除対象のコンテナを指定する |
実行例
docker rm MysqlServer
実行結果の例
MysqlServer
解説
docker rm
コマンドは、指定したコンテナを削除します。実行結果として、削除されたコンテナ名が表示されます。
注意点
- コンテナを削除する前に、必ずコンテナが停止されていることを確認してください。稼働中のコンテナは削除できません。
- コンテナを削除すると、そのコンテナ内のデータは失われます。必要なデータがある場合は、事前にバックアップを取ってください。
イメージ削除の手順

以下の手順に従って、不要なDockerイメージを削除します。
Step1: 削除対象のイメージを確認する
まず、削除したいイメージが存在するか確認します。
docker image ls
実行結果の例
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f876bfc1cc63 5 weeks ago 192MB
mysql latest 56a8c14e1404 2 months ago 603MB
httpd latest 4ce47c750a58 5 months ago 147MB
hello-world latest d2c94e258dcb 20 months ago 13.3kB
Step2: 関連するコンテナを停止・削除する
削除対象のイメージから作成されたコンテナが存在する場合、まずそれらのコンテナを停止・削除します。
docker stop コンテナ名
docker rm コンテナ名
実行例
docker stop MysqlServer
docker rm MysqlServer
Step3: イメージを削除する
コンテナが削除されたら、イメージを削除します。イメージ名またはイメージIDを使用して削除します。
イメージ名で削除する場合
docker image rm mysql
イメージIDで削除する場合
docker image rm 56a8c14e1404
複数のイメージを一度に削除する場合
docker image rm nginx httpd
実行結果の例
Untagged: nginx:latest
Untagged: mysql:latest
Deleted: f876bfc1cc63a1234567890abcdef1234567890abcdef1234567890abcdef1234
Deleted: 56a8c14e1404a1234567890abcdef1234567890abcdef1234567890abcdef1234
Step4: イメージの削除を確認する
削除が完了したことを確認するため、再度イメージ一覧を表示します。
docker image ls
実行結果の例
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest 4ce47c750a58 5 months ago 147MB
hello-world latest d2c94e258dcb 20 months ago 13.3kB
確認ポイント
- 削除したイメージ(例:
nginx
,mysql
)が一覧に表示されていないこと。
補足
イメージ削除時の依存関係
イメージを削除する際、他のイメージやコンテナが依存している場合は削除できません。特に、親イメージや中間イメージが存在する場合は注意が必要です。依存関係を確認し、必要に応じて関連するコンテナやイメージを削除してから進めましょう。
未使用イメージの一括削除
未使用のイメージ(Dangling Images)を一括で削除するには、以下のコマンドを使用します。
ocker image prune
実行例
PS C:\Users\joeac> docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Deleted Images:
untagged: <none>:<none>
deleted: sha256:abcdef1234567890...
Total reclaimed space: 50MB
注意点
docker image prune
コマンドは、未使用のイメージのみを削除します。必要なイメージが削除されないように注意してください。
まとめ
ここでは、Dockerイメージの削除方法について学びました。以下のポイントを押さえておきましょう。
- イメージの管理: コンテナを削除してもイメージは残るため、不要なイメージは適宜削除してストレージを効率的に利用します。
- 依存関係の確認: イメージを削除する前に、そのイメージから作成されたすべてのコンテナを停止・削除する必要があります。
- コマンドの理解:
docker image ls
、docker image rm
、docker ps -a
などのコマンドを活用して、イメージとコンテナの状態を管理します。 - 未使用イメージの一括削除:
docker image prune
コマンドを使用して、未使用のイメージを一括で削除することができます。
イメージの削除は、Docker環境の健全性を維持し、システムリソースを有効に活用するために重要な操作です。これらの手順を実践し、Dockerイメージの管理スキルを向上させましょう。