首页 > 解决方案 > 为什么容器优化的计算实例使用缓存的图像而不是最新的?

问题描述

我正在使用此启动脚本运行容器优化的计算实例:

#!/bin/bash

mkdir /home/my-app
cd /home/my-app
export HOME=/home/my-app

docker-credential-gcr configure-docker


docker run --rm --security-opt seccomp=./config.json gcr.io/my-project/my-app:latest

此脚本在创建新实例时运行良好。但是当我重新启动现有实例时,它不会提取最新图像。

我试图从 gcr 中删除所有图像,但实例仍然能够启动,这证明它甚至没有尝试从 gcr 中提取最新图像。

此外,由于某种原因,启动脚本日志未显示在 Cloud Logger 中。

标签: google-cloud-platformgoogle-compute-engine

解决方案


根据kubernetes,使用 Docker,如果图像已经存在,则拉取尝试很快,因为所有图像层都被缓存并且不需要下载图像。

作为一种解决方法,您可以在脚本中添加第 1 步和第 2 步:

1- docker images // 将显示图像列表,包括 (gcr.io/my-project/my-app:latest)

2- docker rmi --force gcr.io/my-project/my-app:latest // 将删除本地镜像

3- docker run (你的命令的其余部分,它将再次从 gcr.io 下载最新的图像)


推荐阅读