Dockerのイメージを削除する
最近忙しくてブログが書けていませんでしたが
そろそろGWも近いので家のPCの環境を今勉強中のdocker,ansibleとか使って
整理していきたいと思ってます。
そこでまずは勉強で使っていたdockerイメージを削除していったんきれいにします。
まずはimageの確認から
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos 7 2d194b392dd1 6 weeks ago 195MB hello-world latest f2a91732366c 5 months ago 1.85kB
前回hello-worldと表示するだけのコンテナとcentosのコンテナを落としているため 2つ表示されています。
さっそくこのイメージを削除したいのですがdockerにはimegeとは別にコンテナがあるため 停止しているコンテナをすべて排除してからイメージを消すときれいに消えてくれるようです。 なのでまずはコンテナを削除します。
# docker rm -v $(docker ps -aq -f status=exited) bc336a7d461c 3a910b78f0f9 6235b59692ed
3つ消えてくれましたどうやら2つのイメージで3つのコンテナがあったようです。
次に本命イメージを削除。まずはcentosから
$ docker rmi 2d194b392dd1 Untagged: centos:7 Untagged: centos@sha256:dcbc4e5e7052ea2306eed59563da1fec09196f2ecacbe042acbdcd2b44b05270 Deleted: sha256:2d194b392dd16955847a14f969b2dd319251471ffa6356be6d8f16c5bf53db9b Deleted: sha256:b03095563b7956c62ae5a6d20e5959a950e3b1a96d4404c00b7da7393847494a
docker rmiはイメージの削除を表し、その後ろは削除するimegeIDを指定します。 なんかいろいろ出てますがどうやら、中間ファイルらしいです。
消えたか確認します。
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest f2a91732366c 5 months ago 1.85kB
centosが消えていることが確認できました。続けてhello-worldを消します。
$ docker rmi f2a91732366c Untagged: hello-world:latest Untagged: hello-world@sha256:66ef312bbac49c39a89aa9bcc3cb4f3c9e7de3788c944158df3ee0176d32b751 Deleted: sha256:f2a91732366c0332ccd7afd2a5c4ff2b9af81f549370f7a19acd460f87686bc7 Deleted: sha256:f999ae22f308fea973e5a25b57699b5daf6b0f1150ac2a5c2ea9d7fecee50fdf
消えたか確認します
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE
残っているコンテナがないか合わせて確認
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
残っているコンテナもないようです。
docker imageを消す場合は先にコンテナを消しからイメージを消せばゴミが残ることなくきれいに消えてくれるようです。 今回コンテナを消すときに、動いていないコンテナをすべて削除するコマンドで消しましたが、これだと必要なコンテナまで 消してしまうので、通常はdocker ps を実行して消したいコンテナのコンテナIDを調べてからdocker rm [コンテナID]を実行するよう にしてください。