[Docker]コンテナ/イメージの削除

コンテナへのアクセス方法。

大まかなコンテナ構築手順

一般的な簡単なコンテナ構築手順は以下である。

  1. Dockerfileを作成する
  2. イメージをビルドする
  3. コンテナを起動/停止する
  4. コンテナへアクセスする
  5. コンテナ/イメージを削除する ←今回はこちら

コンテナの削除方法

以下のコマンドで停止したコンテナを削除できる。

docker rm コンテナ名もしくはコンテナID

コンテナを停止していないと削除できない。

ただし、コンテナ起動中でも強制的に削除したい場合は、-fをつける。

docker rm -f コンテナ名もしくはコンテナID

イメージの削除方法

以下のコマンドで停止したイメージを削除できる。

docker rmi イメージ名:タグもしくはイメージID

そのイメージが使用されているコンテナが存在している場合は、削除できない。

ただし、イメージを強制的に削除したい場合は、-fをつける。

docker rm -f イメージ名:タグもしくはイメージID

実際にコンテナ/イメージを削除してみる

起動されているコンテナを確認。

 $ docker ps
CONTAINER ID   IMAGE               COMMAND     CREATED       STATUS       PORTS     NAMES
25122458d2a2   mypythonimage:1.0   "python3"   6 hours ago   Up 6 hours             mypycontainer

使用されているイメージを削除してみる。(削除できない)

 $ docker rmi mypythonimage:1.0
Error response from daemon: conflict: unable to remove repository reference "mypythonimage:1.0" (must force) - container 25122458d2a2 is using its referenced image e0f51fa89a90

起動中のコンテナを削除してみる。(削除できない)

 $ docker rm mypycontainer
Error response from daemon: cannot remove container "/mypycontainer": container is running: stop the container before removing or force remove

上記の通り、コンテナで使用されているイメージや起動中のコンテナはオプションなしでは削除できないことがわかる。

起動中のコンテナを強制削除してみる。(削除できる)

 $ docker rm -f mypycontainer
mypycontainer

コンテナが削除されているか確認。

 $ docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
 $

続いてイメージを削除する。

 $ docker rmi mypythonimage:1.0
Untagged: mypythonimage:1.0
Deleted: sha256:e0f51fa89a90d413a3ddea4e49825ab8c19fd49356d194b3ce2ac5918fff3da6
 $ 

イメージが削除されていることを確認。

 $ docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
 $ 

以上でコンテナおよびイメージを削除することができた。

簡単なコンテナ構築については以上。