繁体   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