Docker 入門
Docker はじめの一歩
コンテナやイメージの削除
様々な Docker イメージをダウンロードしたり,コンテナを作成したりする作業を繰り返すと,ファイルシステムの容量を消費することになります.ここでどの程度のファイルシステムが Docker によって使用されているかを確認します.ここで df
は Bash の df と同じコマンドであることに注意してください.また,python:3.13
の Docker イメージのサイズが 1.12GB と大きな容量であることから,Docker イメージ全体での使用量も合計で 1.123GB になっています.しかしながら,そのイメージから生成した2つのコンテナに関してはその使用量がわずか 1.262MB であることから非常に効率的でオーバーヘッドが小さくなっていることがわかります.
% docker system df ⏎ TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 2 2 1.123GB 0B (0%) Containers 4 0 1.262MB 1.262MB (100%) Local Volumes 0 0 0B 0B Build Cache 0 0 0B 0B % docker image ls ⏎ REPOSITORY TAG IMAGE ID CREATED SIZE python 3.13 5c5a62077b3b 3 weeks ago 1.12GB hello-world latest ca9905c726f0 4 weeks ago 5.2kB
次に,hello-world
コンテナの削除を行ってみます.しかしながら,hello-world
イメージから生成したコンテナがあることから削除はできませんでした.
% docker image ls ⏎ REPOSITORY TAG IMAGE ID CREATED SIZE python 3.13 5c5a62077b3b 3 weeks ago 1.12GB hello-world latest ca9905c726f0 4 weeks ago 5.2kB % docker image rm hello-world ⏎ Error response from daemon: conflict: unable to remove repository reference "hello-world" (must force) - container 5ff2bd0fdf0d is using its referenced image ca9905c726f0
イメージを削除する前に hello-world
イメージから生成した2つのコンテナを順番に削除します.なお,特定のコンテナを指定する時には vigilant_curie
のようなコンテナ名を指定しても良いですし,5ff2bd0fdf0d
のようなユニークなコンテナIDを指定しても構いません.このとき,コンテナIDは必ずしもすべての桁を入力する必要はなく,5ff
のように一意に指定ができる程度に先頭から数桁だけで実行することができます.
% docker container ls -a ⏎ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3ca043d750df python:3.13 "bash" 4 minutes ago Exited (0) 4 minutes ago sad_newton 25de3f427188 python:3.13 "bash" 56 minutes ago Exited (137) About a minute ago sleepy_germain 81436562b438 hello-world "/hello" 57 minutes ago Exited (0) 57 minutes ago vigilant_curie 5ff2bd0fdf0d hello-world "/hello" 59 minutes ago Exited (0) 59 minutes ago lucid_mayer % % docker container rm vigilant_curie ⏎ vigilant_curie % % docker container ls -a ⏎ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3ca043d750df python:3.13 "bash" 5 minutes ago Exited (0) 5 minutes ago sad_newton 25de3f427188 python:3.13 "bash" 56 minutes ago Exited (137) 2 minutes ago sleepy_germain 5ff2bd0fdf0d hello-world "/hello" About an hour ago Exited (0) About an hour ago lucid_mayer % % docker container rm 5ff ⏎ 5ff % docker container ls -a ⏎ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3ca043d750df python:3.13 "bash" 5 minutes ago Exited (0) 5 minutes ago sad_newton 25de3f427188 python:3.13 "bash" 57 minutes ago Exited (137) 2 minutes ago sleepy_germain
上の一連のコマンドを実行することで,イメージ hello-world
から生成されたコンテナがすべて削除されました.これによりイメージ hello-world
を削除することができます.
% docker image ls ⏎ REPOSITORY TAG IMAGE ID CREATED SIZE python 3.13 5c5a62077b3b 3 weeks ago 1.12GB hello-world latest ca9905c726f0 4 weeks ago 5.2kB % docker image rm hello-world ⏎ Untagged: hello-world:latest Untagged: hello-world@sha256:a0dfb02aac212703bfcb339d77d47ec32c8706ff250850ecc0e19c8737b18567 Deleted: sha256:ca9905c726f06de3cb54aaa54d4d1eade5403594e3fbfb050ccc970fd0212983 Deleted: sha256:50163a6b11927e67829dd6ba5d5ba2b52fae0a17adb18c1967e24c13a62bfffa % docker image ls ⏎ REPOSITORY TAG IMAGE ID CREATED SIZE python 3.13 5c5a62077b3b 3 weeks ago 1.12GB
同じように python:3.13
イメージを削除する前にコンテナを先に削除します.なお,次のようにコンテナIDを複数指定することでまとめてコンテナを削除することもできます.
% docker image ls ⏎ REPOSITORY TAG IMAGE ID CREATED SIZE python 3.13 5c5a62077b3b 3 weeks ago 1.12GB % docker container ls -a ⏎ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3ca043d750df python:3.13 "bash" 7 minutes ago Exited (0) 6 minutes ago sad_newton 25de3f427188 python:3.13 "bash" 58 minutes ago Exited (137) 3 minutes ago sleepy_germain % % docker container rm 3ca 25d ⏎ 3ca 25d % docker container ls -a ⏎ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
コンテナを削除できたので続けてイメージを削除します.イメージを指定するときに イメージ名:タグ
のような書き方を利用していることにも注意してください.
% docker image ls ⏎ REPOSITORY TAG IMAGE ID CREATED SIZE python 3.13 5c5a62077b3b 3 weeks ago 1.12GB % docker image rm python:3.13 ⏎ Untagged: python:3.13 Untagged: python@sha256:b41c4877ed4d8a4d6e04f0b341b84f2bd384325816975b1ebf7a2f2e02b7acaa Deleted: sha256:5c5a62077b3ba3112433fb0b2d395609252f1432c69edaf4965b8c60ac61d4f3 Deleted: sha256:9b7d071b0e1861a489219105875ab366234c100f15db90143835fc9fd8003b40 Deleted: sha256:822208cf3d5a52eb96eeae25ab5f1033a4aedaff56d2b8ee61d67685a08bb0d5 Deleted: sha256:38d566cd84bcb972b9aa79585567fbf52e73ef42088c8ea16f2c6c523206d81f Deleted: sha256:1efd19a4bf540b641236729a22579160118227b4013f35bc07ac021b6aebb1e8 Deleted: sha256:12446c8a05a766b90055bc79c8c61f13b535052a07beea67163e72afc29d17a2 Deleted: sha256:72cef1a6a9e5d6a430e744082cc239e73b52e7ebcd2f96a1c48aaf71fca5cc95 Deleted: sha256:01208eec12aff6200b2d5dab35cd6771a332af0db8d0b2d8755f7257775bc5a9 % % docker image ls ⏎ REPOSITORY TAG IMAGE ID CREATED SIZE
コンテナとイメージを言ったんすべて削除しました.Docker のファイルシステム使用量を確認します.
% docker system df ⏎
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 0 0 0B 0B
Containers 0 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B