簡體   English   中英

gcloud模擬器快速填滿所有Docker磁盤空間

[英]gcloud emulator rapidly filling up all Docker disk space

我正在使用 Google Cloud Run 模擬器( glcoud beta code dev ),它工作正常......

...直到我使用它幾天后,它已經消耗了我分配給 Docker (60 GB.) 的所有硬盤空間,並且無法再運行。

然后,我使用docker system prune --all --force --volumes手動強制清除 Docker 的磁盤空間。

有沒有辦法告訴gcloud在關閉模擬器時自動清除它寫入的所有文件?

也許我錯過了一面旗幟? 或者也許我以錯誤的方式關閉? 我目前正在通過終端上的ctrl+C停止模擬器。


編輯:如果它有幫助,我想我知道是什么導致了填充:

我正在使用 GCR 提供網頁,並在我的 Dockerfile 中。 每次我進行更改時,gcloud 模擬器都會重建容器。 我認為每次重建都會重新復制所有資產(圖像、音頻),這就是它占用如此多磁盤空間的原因。


編輯 2: Docker 顯示glcoud-local-dev in-use即使我已經從命令行按ctrl+C關閉了模擬器。

正如您所說,您可以使用以下命令一次刪除所有未使用的容器、卷、網絡和映像:

docker system prune -a -f --volumes

如果這還不夠,可以從刪除操作容器開始:

docker rm -f $(docker ps -a -q) docker system prune -a -f --volumes

使用具有額外空間的不同站點也是解決此問題的可行選擇。

目前,最佳實踐是運行以下命令: docker system prune

在您接受后果之前,請注意此命令中的 output:

警告:這將刪除? - 所有停止的容器 - 至少一個容器未使用的所有網絡 - 所有懸空圖像 - 所有懸空構建緩存 確定要繼續嗎? [是/否]

換句話說,繼續使用這個命令是不可逆的。 請記住,推薦的做法是將停止的容器視為 ephemeral ,這意味着您應該設計 Docker 作業以避免保留它們。 如果您沒有主動調試容器,您可能希望在運行時使用--rm 標志

根據gcloud beta code dev ,它還沒有提到任何可以阻止您的主要問題的標志。 請注意,此命令目前處於測試階段,可能會更改,恕不另行通知。 最后更新於 2021 年 10 月 19 日。

此變體也可用: gcloud alpha code dev

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM