gpt4 book ai didi

docker - gcloud 模拟器迅速填满所有 Docker 磁盘空间

转载 作者:行者123 更新时间:2023-12-05 05:47:41 24 4
gpt4 key购买 nike

编辑 4:我为此打开了一个问题:https://issuetracker.google.com/issues/219164388


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

...直到我使用它几天后,它已经耗尽了我分配给 Docker 的所有硬盘空间(60 GB!)并且无法再运行。

然后我使用 docker system prune --all --force --volumes 手动强制清除 Docker 的磁盘空间。

有没有办法告诉 gcloud 在关闭模拟器时自动清除它写入的所有文件?

也许我缺少一面旗帜?或者也许我以错误的方式关闭?我目前正在终端中通过 ctrl+C 停止模拟器。

编辑 3:正如下面的答案所指出的,我需要的是 docker --rm 的等价物,但对于 gcloud。


编辑:如果有帮助,我想我知道是什么导致了填充:

我正在使用 GCR 在我的 Dockerfile 中为网页提供服务。每次我进行更改时,gcloud 模拟器都会重建容器。我认为每次重建都会重新复制所有 Assets (图像、音频),这就是它占用如此多磁盘空间的原因。


编辑 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

在您接受后果之前,请记下此命令的输出:

WARNING! This will remove: - all stopped containers - all networks notused by at least one container - all dangling images - all danglingbuild cache Are you sure you want to continue? [y/N]

换句话说,继续使用这个命令是不可逆的。请记住,推荐的做法是对待 stopped containers as ephemeral ,这意味着您应该设计您的 Docker 作业以避免将它们保留在身边。如果您没有主动调试容器,您可能希望使用 --rm flag在运行时。

根据 gcloud beta code dev ,它还没有提到任何可以防止你的主要问题的标志。请注意此命令目前处于测试阶段,可能会更改,恕不另行通知。最后更新于 2021-10-19。

此变体也可用: gcloud alpha code dev

关于docker - gcloud 模拟器迅速填满所有 Docker 磁盘空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70943738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com