「なんでこんな現象が!?」ってなったのでメモ
結論
–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 .
指定する順番が悪いのか?ということで、–no-cacheを最後に指定して再度実行
docker build -t docker-whale . --no-cache
なんだこのnoneというイメージは!!ということで検索し、
冒頭の結論に至りました。
–no-cacheオプションをつければ既存のイメージに
上書きしてbuildしてくれるのではないんですね。
既にある同じ名前のイメージをnoneに変更し、新しくイメージをbuildするようです。
それでは!
コメント