2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

docker images -a で表示される<none>となっているimageの削除手段(案)

Last updated at Posted at 2017-07-19

Docker のbuildしたimageファイルの取扱で、"none"となったファイルの取扱に困り、問題を(無理やり)解消した件を記録します。

(困ったというのは、対応するcontainerのゴミを削除しても、docker rmi -f で消そうとしても消せないことが、原因がわからず発生しました)

$ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
libraries           mri2                76f924af5b91        9 months ago        1.381 GB
ubuntu              12.04               e216a057b1cb        9 months ago        103.6 MB

上記でリストされるのは、REPOSITORY名とTAG名が設定されているものだけになるようです。
しかし、操作方法の誤りからREPOSITORY名とTAG名が"none"となってしまう場合がある。

そういった場合は以下の「-a」全部表示するオプションを付けたコマンドを打てば表示される。ここに表示されているimageは基本利用しないため、HDDの容量を無駄に消費しているため削除した方が無難。

$ docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
libraries           mri2                76f924af5b91        9 months ago        1.381 GB
<none>              <none>              a3e3f7862151        9 months ago        103.6 MB
ubuntu              12.04               e216a057b1cb        9 months ago        103.6 MB

そこで、"none"のimageを消そうとすると、以下のエラーが表示されることがある(理由は、調べきれていないため不明)。

$ docker rmi a3e3f7862151
Error response from daemon: conflict: unable to delete a3e3f7862151 (cannot be forced) - image has dependent child images

docker ps -aで確認しても対応するcontainerは見つからず、強制削除のオプション「-f」を付けても削除できず、同じエラーが表示される。
こういう時、物理的にファイルを削除すると、うまくいくことがわかった。

つまり、下記のコマンドで示すように、ファイルを探し出し、削除する方法です。

$ find  /var/lib/docker/image/aufs/imagedb/content/sha256 -name "a3e3f7862151*"
/var/lib/docker/image/aufs/imagedb/content/sha256/a3e3f7862151f618ed54ffd828c8086a2bfef23d6121a689ff46e6498ed58a4f
$ rm /var/lib/docker/image/aufs/imagedb/content/sha256/a3e3f7862151f618ed54ffd828c8086a2bfef23d6121a689ff46e6498ed58a4f

参考にしたのは、下記のページです。
cannot delete some images #12487
REPOSITORY名とTAG名が設定されていれば正規の方法でできると思いますが、今回"none"となって対応方法が見つかりませんでした。
最終手段として/var/lib/docker以下を破棄して対応している人がいるようなので、全部消すなら一度ファイル単位で消してみようと試してみました。

今のところ、手元の環境は動作しています。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?