GCP 中没有空间用于拉取具有相同标签的 docker 镜像

GCP 中没有空间用于拉取具有相同标签的 docker 镜像

我们使用实例组来运行docker容器,并设置实例模板以使用图像作为

us.gcr.io/my-project/my-image:latest

当我们对 docker 镜像进行任何更改时,我们都会对其进行标记latest并运行:

gcloud compute instance-groups managed rolling-action restart my-instance-group --region us-central1

对于图像的初始更改,此方法运行良好,实例组 vms 将提取新图像并覆盖以前的图像。但在进行更多更改后,它开始出现错误:

no space left on device

本质上,GCP 不会处理过时的映像,它会存储旧映像副本。但在“滚动更新到容器优化的虚拟机”的情况下,我们能否针对这些用例获得更好的自动化处理?我们真的不想 ssh 进入主机并docker image prune -a时不时地手动运行。

答案1

您可以在启动脚本 [1] 的开头添加此行。

docker image prune -a

这将删除所有未使用的图像,然后再在启动脚本中拉取新图像。请注意,需要重新启动才能触发启动脚本。

因此,您的硬盘不会被填满,并且您的虚拟机上将运行最新的 docker 映像。

[1]https://cloud.google.com/compute/docs/startupscript

相关内容