今天筆者想要把 docker image 刪掉時,出現以下錯誤訊息:
這個問題很常見,就是因為這個 image 是其他 image 的基底,所以要先把依賴此 image 的其他相關 image 和容器都刪掉,才有辦法。
但問題是筆者已經把 docker ps -a, docker images 兩個指令都找過了,還沒有找到依賴的 image
正打算使用筆者秘密筆記裡面的招式 docker image prune -f 直接結束這回合時,突然想到,如果這個可以刪掉隱藏的內容釋放空間,那平時到底要怎麼看哪裡有隱藏的 image?
經過一翻研究,其實就只是開啟 docker docs 官方文件,答案意外的簡單:
所有無名 images 都會被隱藏,使用 -a 參數來顯示
也就是 docker images 和 docker ps 一樣,兩個都有一個 -a 參數可以使用,可以列出隱藏的 images (以下是擷取部分內容)
真的是不看不知道,一看嚇一跳,在這台電腦裏面有 370G 被無名 images 佔用了, 執行 docker rmi 逐一刪除即可
當然,前面提到的密技也有類似的效果,可以一次刪除所有沒有標籤、沒有正在被使用的 images
參考資料:
Docker docs - docker image ls
$ docker rmi bf3cdda3c9c4
Error response from daemon: conflict: unable to delete bf3cdda3c9c4 (cannot be forced) - image has dependent child images
這個問題很常見,就是因為這個 image 是其他 image 的基底,所以要先把依賴此 image 的其他相關 image 和容器都刪掉,才有辦法。
但問題是筆者已經把 docker ps -a, docker images 兩個指令都找過了,還沒有找到依賴的 image
正打算使用筆者秘密筆記裡面的招式 docker image prune -f 直接結束這回合時,突然想到,如果這個可以刪掉隱藏的內容釋放空間,那平時到底要怎麼看哪裡有隱藏的 image?
經過一翻研究,其實就只是開啟 docker docs 官方文件,答案意外的簡單:
Untagged (dangling) images are also hidden by default. Use the -a (--all) flag to show intermediate layers and dangling images.
所有無名 images 都會被隱藏,使用 -a 參數來顯示
也就是 docker images 和 docker ps 一樣,兩個都有一個 -a 參數可以使用,可以列出隱藏的 images (以下是擷取部分內容)
docker images -a
IMAGE ID DISK USAGE CONTENT SIZE EXTRA
<untagged> f7f847ff147f 20.6GB 0B
<untagged> 91c771c88aa4 30.8GB 0B
<untagged> 1db986bde0dd 20.6GB 0B
<untagged> 1c5504ab7684 24GB 0B
<untagged> bad86a06b554 20.7GB 0B
<untagged> 1a7632fed8e6 23.9GB 0B
<untagged> 6fe9a7a6687e 20.6GB 0B
真的是不看不知道,一看嚇一跳,在這台電腦裏面有 370G 被無名 images 佔用了, 執行 docker rmi 逐一刪除即可
docker rmi f7f847ff147f
當然,前面提到的密技也有類似的效果,可以一次刪除所有沒有標籤、沒有正在被使用的 images
docker image prune -f
參考資料:
Docker docs - docker image ls
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com