【docker】buildする時にnoneというイメージが生成される…

「なんでこんな現象が!?」ってなったのでメモ

結論

–no-cacheをつけてコマンドを実行した際、同じ名前のbuildされたイメージが
既に存在した場合古いものはnoneというイメージに変更されてしまう。=ゴミ

none repositoryを一括で削除するコマンド👇

docker image prune --filter="label=none"

docker image prune は使用されていないイメージを削除するコマンドです。
–filter=”label=none”で”ラベルがnoneのイメージ”と指定することができます。

概要

udemyでdockerについての動画を視聴しているのですが、
少し情報が古いようで(それでも最終更新日は2021/11、現在は2022/10)
教材のログと自分のパソコンに表示されるログが異なりました。

docker build -t docker-whale .
[+] Building 32.4s (6/6) FINISHED                                                                              
 => [internal] load build definition from Dockerfile                                                      0.0s
 => => transferring dockerfile: 158B                                                                      0.0s
 => [internal] load .dockerignore                                                                         0.0s
 => => transferring context: 2B                                                                           0.0s
 => [internal] load metadata for docker.io/docker/whalesay:latest                                         0.0s
 => CACHED [1/2] FROM docker.io/docker/whalesay:latest                                                    0.0s
 => [2/2] RUN apt-get -y update && apt-get install -y fortunes                                           32.1s
 => exporting to image                                                                                    0.2s
 => => exporting layers                                                                                   0.2s
 => => writing image sha256:8c489ea3ea8a7e7967400493bb02255a89dfabef3489ca9231171e3b7b94e2bc              0.0s 
 => => naming to docker.io/library/docker-whale 

もっと詳細に表示されるはずなのに、省略されている…
やりたいことはできているので別に良いのですが、
詳細を見る方法は無いか?ということで検索→実行。

同じ名前のイメージをbuildするので–no-cacheをつけて実行したところ、
なにやらnoneという名前のイメージが作成されていた。
(ちなみに、ログの詳細を表示させるには–progress=plainオプションを指定するらしい)

docker build --no-cache --progress=plain -t docker-whale .
なぞのnone repositoryが生成されている…

指定する順番が悪いのか?ということで、–no-cacheを最後に指定して再度実行

docker build -t docker-whale . --no-cache
none repositoryが増殖している!?

なんだこのnoneというイメージは!!ということで検索し、
冒頭の結論に至りました。

–no-cacheオプションをつければ既存のイメージに
上書きしてbuildしてくれるのではないんですね。

既にある同じ名前のイメージをnoneに変更し、新しくイメージをbuildするようです。

それでは!

コメント

タイトルとURLをコピーしました