google-cloud-platform - 为什么容器优化的计算实例使用缓存的图像而不是最新的?
问题描述
我正在使用此启动脚本运行容器优化的计算实例:
#!/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 中。
解决方案
根据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 下载最新的图像)
推荐阅读
- java - 查找应用程序方法的平均执行时间?
- python - 如何打印进入训练器(火炬)的输入数据?
- javascript - 在动态页面中加载正确路径时出现问题
- java - 如何从 Spring Cloud Stream Kafka Binder 中的偏移量获取消息?
- plsql - 如何将图像多部分/表单数据从 pl/sql 发布到 Web 服务?
- javascript - 在单页设计的导航栏中突出显示当前部分
- cmake - 捕获 FetchContent_Declare 失败
- angular - 如何在 ts 文件中将数据从一个组件传递到另一个组件?
- ios - 带有卷积的垂直边缘检测,使用 Swift 给出透明图像
- annotations - Modelica 注释导数:noDerivative 与 zeroDerivative