【问题标题】:Remove old containers for Google Container OS删除 Google Container OS 的旧容器
【发布时间】:2021-11-13 16:15:40
【问题描述】:

我在 Google Compute Engine 上的 Google Container OS 内托管了一个 Docker 映像。为了部署我的容器,我这样做:

gcloud compute instances update-container example --container-image "$IMAGE_WITH_TAG"

在我最近的部署中,我收到了这个错误:

failed to register layer: Error processing tar file(exit status 1): write /usr/share/man/man1/journalctl.1.gz: no space left on device

通过 SSH 连接到我的 Docker 容器后,我运行 docker images 并注意到 Docker 仍然挂在我的旧镜像上。我可以手动删除这些镜像,但是再部署几次后就会出现同样的问题。

有没有办法在通过gcloud compute instances update-container 部署到容器操作系统时自动删除旧的 Docker 映像?

【问题讨论】:

    标签: docker google-compute-engine google-container-os


    【解决方案1】:

    您可以尝试使用第三方工具GCR Cleaner tool 来帮助自动删除旧图像。所有新创建的图像都标有“最新”标签,因此它们不会被工具意外删除。

    GCR Cleaner 删除 Google Cloud Container Registry 或 Google Cloud Artifact Registry 中未标记的图像。这有助于降低成本并保持容器镜像列表井然有序。

    GCR Cleaner 旨在部署为Cloud Run 服务,并通过Cloud Scheduler 定期调用。这不是 Google 的官方产品。

    另外一种方法是使用 prune 命令自动删除所有与容器无关的资源。这是清理未使用的映像、容器、卷和网络的一种简化方式。

    在终端窗口中,输入以下内容:

    $ docker system prune
    

    可以包含其他标志:

    -a 包含已停止的容器和未使用的图像

    -f 绕过确认对话框

    --volumes 删除所有未使用的卷

    运行 docker system prune -a 会删除未使用和悬空的图像。容器中使用的图像,无论是当前运行的还是退出的,都不会受到影响。

    您还可以参考在特定日期之前推送的script to clean up Google Container Registry 图片。

    【讨论】:

      【解决方案2】:

      目前,Compute Engine 没有自动清理旧图像和未使用图像的功能。在 Compute Engine 上更新容器时,steps performed 未提及。

      到目前为止,解决方法是运行以下命令来清除磁盘。您也可以添加到您的 shutdown 脚本中:

      docker rm  $(docker ps -q -a) \
      docker images -q -f dangling=true | xargs docker rmi \
      docker system prune --all
      

      以上命令将执行以下操作:

      1. 删除所有停止的 docker 容器。
      2. 删除所有悬空图像。
      3. 删除所有未使用的图像和卷​​。

      Explanation 区分“悬空”和“未使用”图像。

      similar answer 提供了一个使用 prune 命令的示例和另一个解决方法,以确保在更新容器映像之前清除旧映像。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-30
        • 2013-06-18
        • 2018-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多