剛剛在學習Docker的程序中。嘗試運行 hello-world 示例:
# docker run hello-world
作業。
使用洗掉影像
# docker image rm -f <image-id>
作業。
# docker images
不顯示影像。
現在,如果我再次嘗試運行 hello-world 示例,它會顯示以下內容:

它提到:
2db29710123e: Already exists
這是否意味著,鏡像已經存在于本地主機上,或者鏡像確實存在于 Docker Registry 中,并且這是一個新的拉取?
任何見解將不勝感激。
uj5u.com熱心網友回復:
您必須首先使用以下代碼使用影像停止并洗掉 docker 容器:
docker kill <container-id> # kills the container
docker rm <container-id> # remove container using hello-world image
然后,最后您可以洗掉影像。
docker image rm hello-world # remove the hello-world image
uj5u.com熱心網友回復:
當 Docker 說2db29710123e: Already exists,是的,它已經存在于你的本地機器上。但是,它不作為hello-world影像的一部分存在,因為您事先強行洗掉了它。但是,為什么您必須首先強制洗掉它?為什么定期洗掉還不夠?這是它在運行時顯示的訊息docker image rm hello-world:
來自守護行程的錯誤回應:沖突:無法洗掉存盤庫參考“hello-world”(必須強制) - 容器 4d198a310ed5 正在使用其參考的映像 feb5d9fea6a5
這意味著您仍然有一個參考該影像的容器(來自之前的 hello-world 測驗)。因此,當您強制洗掉時,影像(標簽或標簽)將從 中洗掉docker images,但由于現有容器,底層資料仍在本地。
但是,如果您在再次運行 hello-world 測驗之前洗掉容器(例如使用docker container rm或docker container prune),您將從存盤庫中提取影像,因為它在本地不再存在。如果您在移除影像之前移除容器,您也將不再需要 force-remove。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/392476.html
標籤:码头工人 docker-registry 码头工人形象
