我在Google Compute Engine上的Google Container OS內托管一個Docker鏡像。為了部署我的容器,我這樣做:
gcloud compute instances update-container example --container-image "$IMAGE_WITH_TAG"
在我最新的部署中,我得到了這個錯誤:
在SSH進入我的Docker容器后,我運行 是否有辦法將這些鏡像洗掉?
我是否有辦法在通過 uj5u.com熱心網友回復: 目前,計算引擎沒有自動清理舊的和未使用的影像的功能。在 Compute Engine 上更新容器時,執行的步驟中并沒有提到這一點。
就目前而言,解決方法是運行下面的命令來清除磁盤。您還可以在您的關機腳本上添加:
上述命令將做以下事情: 解釋"懸空 "和 "未使用 "的影像之間的區別。 這個類似的答案提供了一個使用prune命令的例子和另一個解決方法,以確保在更新容器鏡像之前清除舊的鏡像。 uj5u.com熱心網友回復: 你可以嘗試使用GCR Cleaner工具,一個第三方工具來幫助自動洗掉舊影像。所有新創建的圖片都被標記為 "最新",因此它們不會被該工具意外地洗掉。
GCR Cleaner 可洗掉 Google Cloud Container Registry 或 Google Cloud Artifact Registry中未標記的影像。這可以幫助降低成本并使您的容器影像串列保持有序。
GCR Cleaner 被設計為作為Cloud Run服務部署,并通過Cloud Scheduler定期進行呼叫。這不是谷歌的官方產品。
還有一種方法是使用prune命令來自動洗掉所有與容器無關的資源。這是一種清理未使用的影像、容器、卷和網路的精簡方法。
還可以包括其他標志: -a 要包括已停止的容器 -a 包括停止的容器和未使用的鏡像失敗了。
注冊層失敗。處理tar檔案時出錯(exit status 1): write /usr/share/man/man1/journalctl.1.gz: no space left on device
docker images,發現Docker仍然掛著我的舊鏡像。我可以手動洗掉這些鏡像,但在多部署幾次后,同樣的問題就會出現。gcloud compute instances update-container部署到Container OS時自動洗掉舊的Docker影像?
docker rm $(docker ps -q -a)
docker images -q -f dangling=true | xargs docker rmi
docker system prune --all
$ docker system prune
--volumes 洗掉所有未使用的卷
運行docker system prune -a會洗掉未使用和懸空的映像。容器中使用的映像,無論是當前運行的還是退出的,都不會受到影響。你也可以參考腳本來清理在特定日期之前推送的谷歌容器注冊表影像。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/326374.html
標籤:
