当我尝试将docker映像部署到gcp并收到错误设备上没有空间时,我的主要问题首先开始。看了一会儿之后,我发现我必须删除/ var / lib / docker并再次拉出图像。
sudo umount /var/lib/docker/
sudo systemctl stop docker
sudo umount /var/lib/docker/
sudo rm -rf /var/lib/docker/
sudo systemctl restart docker
docker pull myImage
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v "$PWD:/rootfs/$PWD" -w="/rootfs/$PWD" docker/compose:1.26.0 up -d
当我想摆脱以前的图像/容器等时,我运行docker system prune -a
,但似乎没有任何修剪。每当我要部署另一个映像时,都会重复出现相同的问题。
因此,我遇到了两个可怕的问题,在过去的三天内,情况变得更加糟糕。
我之前也尝试过查看inode的用法,但是找不到问题。
我的docker映像总共约为400 MB。因此,它不应使磁盘已满。我的计算机类型是自定义的(1个vCPU,4.75 GB内存)**,并且具有10 GB的标准永久磁盘
如何解决这些问题?我特别关心第一个问题,但是我认为第一个问题的答案也应该对第二个问题有所帮助。
注意:我的VM在德国,因此从gcr.io中提取图像的成本(它是从NA中提取的。我不知道如何从德国中提取图像)
答案 0 :(得分:4)
在GCP中使用docker时,我会考虑使用GCR(Google容器注册表)。
您的502,可能会导致容器永久重启以进行健康检查。一个问题。因此,无限循环重启。始终采用拉动策略。
您是否在VM上运行docker?或者您正在使用GKE(Google Kubernetes Engine)
无论如何,如果您决定使用GCR,则无需为图片拉取付费... 只要您的VM / GKE居住在相同的区域/区域
您可以选择使用其他主机从特定位置提取图像:
eu.gcr.io代替gcr.io
请参阅:https://cloud.google.com/container-registry/docs/pushing-and-pulling
您可能还必须在eu.gcr.io上对其进行新构建
Google容器注册表存储在Cloud Storage Bucket上。 您可以擦拭桶,以确保桶不见了。
从云控制台检查存储浏览器: https://console.cloud.google.com/storage/browser?project=PROJECT_ID_HERE
存储桶应如下所示:
.artifacts。
请确保先浏览它,因为卸下存储桶会擦掉所有工件。