Docker 谷歌云计算实例更新
我在google compute实例中使用docker image部署了一个网站 我无法用新图像更新google cloud实例。使用新的docker映像更新计算实例并运行容器不会改变任何内容 以下是我更新google compute实例的步骤:Docker 谷歌云计算实例更新,docker,google-cloud-platform,google-compute-engine,google-compute-api,Docker,Google Cloud Platform,Google Compute Engine,Google Compute Api,我在google compute实例中使用docker image部署了一个网站 我无法用新图像更新google cloud实例。使用新的docker映像更新计算实例并运行容器不会改变任何内容 以下是我更新google compute实例的步骤: docker build -t vue_app -f deploy/web/Dockerfile . --tag gcr.io/namesapi-1581010760883/vue-app:v1 docker push gcr.io/namesapi-
docker build -t vue_app -f deploy/web/Dockerfile . --tag gcr.io/namesapi-1581010760883/vue-app:v1
docker push gcr.io/namesapi-1581010760883/vue-app:v1
gcloud compute instances update-container --container-image=gcr.io/namesapi-1581010760883/vue-app:v1 vue-app-vm
因此,在第一行中,我构建了包含网站和http服务器的图像。我在本地运行了它,可以确认映像是否正常工作,并包含我期望的所有更改
下一行是将图像推送到谷歌云,最后第三行是用新图像更新现有的谷歌计算实例
运行此命令后,实例中不会反映任何更改。我访问了实例上托管的网站,发现没有任何变化。我已经做了很多次同样的步骤,直到最近一切都很好。我遗漏了什么?解决了这个问题。为便于将来参考,请运行以下命令
gcloud compute instances update-container --container-image=gcr.io/namesapi-1581010760883/vue-app:v1 vue-app-vm
不会替换实例上的现有映像,而是创建一个新映像。因此,经过一段时间后,实例会积累大量图像:
REPOSITORY TAG IMAGE ID CREATED SIZE
gcr.io/namesapi-1581010760883/vue-app v1 d21bd8939323 9 days ago 394MB
gcr.io/namesapi-1581010760883/vue-app <none> c136b1c9e0d4 13 days ago 387MB
gcr.io/namesapi-1581010760883/vue-app <none> b1b11f2c9678 4 weeks ago 385MB
gcr.io/namesapi-1581010760883/vue-app <none> a5ef94db2438 4 weeks ago 385MB
gcr.io/namesapi-1581010760883/vue-app <none> 23b52253c060 6 weeks ago 385MB
gcr.io/namesapi-1581010760883/vue-app <none> cb03925836a7 2 months ago 384MB
gcr.io/gce-containers/konlet v.0.9-latest da64965a2b28 19 months ago 73.4MB
gcr.io/stackdriver-agents/stackdriver-logging-agent 0.2-1.5.33-1-1 fcfafd404600 22 months ago 548MB
我认为在我的例子中发生的是compute实例的磁盘空间不足,并且在运行上述命令时没有推送新映像。谷歌云API并没有提出警告或任何东西,这就是为什么这很难理解的原因
通过手动登录实例并删除旧图像,然后重复原始问题中的步骤,解决了此问题。解决了此问题。为便于将来参考,请运行以下命令
gcloud compute instances update-container --container-image=gcr.io/namesapi-1581010760883/vue-app:v1 vue-app-vm
不会替换实例上的现有映像,而是创建一个新映像。因此,经过一段时间后,实例会积累大量图像:
REPOSITORY TAG IMAGE ID CREATED SIZE
gcr.io/namesapi-1581010760883/vue-app v1 d21bd8939323 9 days ago 394MB
gcr.io/namesapi-1581010760883/vue-app <none> c136b1c9e0d4 13 days ago 387MB
gcr.io/namesapi-1581010760883/vue-app <none> b1b11f2c9678 4 weeks ago 385MB
gcr.io/namesapi-1581010760883/vue-app <none> a5ef94db2438 4 weeks ago 385MB
gcr.io/namesapi-1581010760883/vue-app <none> 23b52253c060 6 weeks ago 385MB
gcr.io/namesapi-1581010760883/vue-app <none> cb03925836a7 2 months ago 384MB
gcr.io/gce-containers/konlet v.0.9-latest da64965a2b28 19 months ago 73.4MB
gcr.io/stackdriver-agents/stackdriver-logging-agent 0.2-1.5.33-1-1 fcfafd404600 22 months ago 548MB
我认为在我的例子中发生的是compute实例的磁盘空间不足,并且在运行上述命令时没有推送新映像。谷歌云API并没有提出警告或任何东西,这就是为什么这很难理解的原因
通过手动登录实例并删除旧图像,然后重复原始问题中的步骤,解决了此问题。谢谢@RaidasGrisk
这个问题太疯狂了谢谢@RaidasGrisk
这个问题是疯狂的当你在启动脚本中删减未使用的图像时会发生什么?在启动时,没有容器正在运行,因此脚本将删除所有图像,然后GCE将从头开始重新安装所有图像?@kennysong否,调用启动脚本时,容器已在运行。在启动脚本中删除未使用的图像时会发生什么情况?在启动时,没有容器正在运行,因此脚本将删除所有图像,然后GCE将从头开始重新安装所有内容?@kennysong否,调用启动脚本时,您的容器已在运行