神戸学院大学 経営学部 林坂ゼミ

Docker 入門トップページ

« 戻る 次へ »

Docker 入門

Docker はじめの一歩

コンテナやイメージの削除

様々な Docker イメージをダウンロードしたり,コンテナを作成したりする作業を繰り返すと,ファイルシステムの容量を消費することになります.ここでどの程度のファイルシステムが Docker によって使用されているかを確認します.ここで dfBash の 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