我有一个使用 google 计算实例内的 docker 映像部署的网站。
我无法使用新映像更新谷歌云实例。使用新的 docker 映像更新计算实例并运行容器不会改变任何内容。
以下是我更新谷歌计算实例所采取的步骤:
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
我认为在我的情况下发生的情况是计算实例耗尽了磁盘空间,并且在运行上述命令时未推送新映像。谷歌云 API 没有发出警告或任何东西,这就是为什么这很难理解。
通过手动登录实例并删除旧图像,然后重复原始问题中的步骤解决了此问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)