このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Docker超入門:強制削除でDockerを整理!コンテナとイメージの管理

強制削除でDockerを整理!コンテナとイメージの管理

 Dockerを使って開発していると、テスト用に作ったコンテナやイメージがどんどん溜まってしまうことがあります。
 通常は停止中のコンテナや未使用のイメージだけを削除できますが、強制削除 を行いたいときに便利なのが docker container rm -fdocker image rm -f です。
 ただし強制削除は慎重に扱わないと、必要な環境まで消してしまう危険があるので注意しましょう。

コンテナを強制削除する(docker container rm -f)

コマンドの書式

docker container rm -f [コンテナ名]

コマンドの意味

  • docker container rm … コンテナを削除する
  • -f … 強制削除(実行中でも削除可能)

 通常の docker container rm は実行中のコンテナを削除しようとするとエラーになりますが、-f を付けることで強制的に削除できます。

実行例

docker container rm -f ubuntu-smp

このコマンドを実行すると、実行中の ubuntu-smp コンテナが即座に削除されます。

主なオプション

オプション説明
-f強制削除。実行中のコンテナも削除する。
-vコンテナと一緒にボリュームも削除する。

実際の操作の流れ

1.docker container ls -a で削除対象のubuntu-smpコンテナの状態を確認

PS C:\Users\joeac> docker container ls -a
CONTAINER ID   IMAGE           COMMAND                 CREATED      STATUS                      PORTS     NAMES
078979d33132   ubuntu:latest   "/bin/bash"             2 days ago   Exited (255) 44 hours ago             ubuntu-smp
bc9be182e8a6   ubuntu-echo     "echo 'Hello Ubuntu'"   2 days ago   Exited (0) 2 days ago                 cranky_dijkstra

ubuntu-smpコンテナが停止しています。

2.停止しているubuntu-smpコンテナを実行

PS C:\Users\joeac> docker container start ubuntu-smp

3.docker container ls -a で削除対象のubuntu-smpコンテナの状態を再度確認

PS C:\Users\joeac> docker container ls -a
CONTAINER ID   IMAGE           COMMAND                 CREATED      STATUS                  PORTS     NAMES
078979d33132   ubuntu:latest   "/bin/bash"             2 days ago   Up 6 minutes                      ubuntu-smp
bc9be182e8a6   ubuntu-echo     "echo 'Hello Ubuntu'"   2 days ago   Exited (0) 2 days ago             cranky_dijkstra

STATUSがUpになっており、実行状態であることが確認できます。

4.docker container rm -f ubuntu-smp で削除

PS C:\Users\joeac> docker container rm -f ubuntu-smp
ubuntu-smp

-f を付けることで実行中のコンテナも強制的に削除できます。

5.docker container ls -a でコンテナの一覧を確認

PS C:\Users\joeac> docker container ls -a
CONTAINER ID   IMAGE         COMMAND                 CREATED      STATUS                  PORTS     NAMES
bc9be182e8a6   ubuntu-echo   "echo 'Hello Ubuntu'"   2 days ago   Exited (0) 2 days ago             cranky_dijkstra

実行中のubuntu-smpコンテナが削除されていることが確認できます。

イメージを強制削除する(docker image rm -f)

コマンドの書式

docker image rm -f [イメージ名][:タグ]

コマンドの意味

  • docker image rm … イメージを削除する。
  • -f … 強制削除。使用中でも削除可能

 通常、イメージが他のコンテナに依存している場合は削除できませんが、-f を指定すると強制的に削除できます。
ただし、依存しているコンテナが壊れる可能性があるので要注意です。

実行例

docker image rm -f ubuntu-smp

このコマンドを実行すると、ubuntu-smp2 イメージが強制的に削除されます。

主なオプション

オプション説明
-f強制削除。依存関係があっても削除する。
-aすべてのイメージを削除する(使用には細心の注意が必要)

実際の操作の流れ

1.docker image ls で削除対象のubuntu:latestイメージ一を確認

PS C:\Users\joeac> docker image ls
REPOSITORY                   TAG       IMAGE ID       CREATED        SIZE
ubuntu-smp2                  latest    29f7dd0c5150   18 hours ago   118MB
infralinux1/ubuntu-smp-img   1.0       231a383336c0   2 days ago     117MB
ubuntu-echo                  latest    83e81b62b3c4   2 weeks ago    117MB
infralinux1/ubuntu-smp       1.0       83e81b62b3c4   2 weeks ago    117MB
ubuntu                       latest    353675e2a41b   2 weeks ago    117MB

2.削除対象のubuntu:latestイメージに依存するコンテナを作成

PS C:\Users\joeac> docker container run --name ubuntu-smp -it -d ubuntu:latest
41107dc9e8f5b1583e6bf59c106d0472f79d09b7e1e7d34422744fea8b348d9e

3.docker image rm -f [イメージ名] で削除

PS C:\Users\joeac> docker image rm -f ubuntu:latest
Untagged: ubuntu:latest

-f を付けることで他のコンテナに依存するイメージも強制的に削除できます。

4.docker image ls でイメージの一覧を確認

PS C:\Users\joeac> docker image ls
REPOSITORY                   TAG       IMAGE ID       CREATED        SIZE
ubuntu-smp2                  latest    29f7dd0c5150   22 hours ago   118MB
infralinux1/ubuntu-smp-img   1.0       231a383336c0   2 days ago     117MB
infralinux1/ubuntu-smp       1.0       83e81b62b3c4   2 weeks ago    117MB
ubuntu-echo                  latest    83e81b62b3c4   2 weeks ago    117MB

他のコンテナに依存するubuntu:latestイメージが削除されていることが確認できます。

export/import や save/load との違い

ここで紹介した rm -f は、コンテナやイメージを「完全に削除する」コマンドです。
 一方で、保存やバックアップをしたい場合は docker save/loaddocker export/import を使うのが適切です。
削除前にバックアップを取りたい場合は、必ずそちらを利用しましょう。

まとめ

  • docker container rm -f … 実行中のコンテナを強制削除できる。
  • docker image rm -f … 依存中でもイメージを強制削除できる。
  • 強制削除は便利ですが、他の環境に影響を与えることもあるため慎重に扱う必要がある。