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

标签 docker gcloud google-cloud-run

编辑 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 not used by at least one container - all dangling images - all dangling build 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/

相关文章:

Docker 未能获取 http ://deb. debian.org/debian/dists/jessie/InRelease

windows - Windows Boot2Docker Image 的安装位置在哪里?

kubernetes - gcloud不添加用于连接到GKE集群的访问 token

google-cloud-platform - 是否有一种简单的方法可以在 Google 云中的项目之间克隆 SQL 实例?

docker - VS2017 : Adding environment variables to docker container for debugging

json - 在身份验证之前在 AWS 构建规范中使用 jq - 最佳实践?

reactjs - 用于构建 React 应用程序的 App Engine app.yaml 处理程序

google-cloud-platform - 保护未经身份验证的 Cloud Run 端点

google-oauth - 让 Cloud Run 服务成为 Apps Script 项目目标的困难 - 受众和范围

postgresql - 用于将 cloud run 连接到 postgres on cloud SQL 的 Postgres DATABASE_URL 是什么