如何更新 Google 容器优化 os 中的容器?

How to update the containers in Googles container optimized os?

我想使用伙伴管道将新图像推送到 DockerHub。推送新图像时,Google Container Optimized OS 应该会拉取新图像。我正在使用 Google 计算机引擎在 Google 容器优化 os 上 host docker-compose。 我该怎么做?

假设您在 docker-compose 中使用 ':latest' 标签,当您 运行 this:

时,将始终拉取最新版本的图像

docker-compose down && docker-compose build --pull && docker-compose up
(请注意,在拉取容器映像时,升级可能会导致非常轻微的停机)

这可以与 Docker Hub 的 webhook 支持相结合,以便在推送新图像时 运行 此命令。参见 https://docs.docker.com/docker-hub/webhooks/
您需要一些端点来接收来自 webhook 的 POST 调用并执行命令,例如:https://github.com/adnanh/webhook

可以将其配置为 HTTP 端点,以便在推送新图像时从 Docker Hub 接收 webhook,以 运行 上面的命令。出于安全原因,我建议使用 HTTPS 端点和传入 Webhook 的 IP 白名单,只允许来自 Amazon ELB IP 的流量(DockerHub 使用的是这种方式)。 另外,您可能需要验证回调 URL 来自 https://registry.hub.docker.com/.
不幸的是 DockerHub 还不支持使用秘密来验证调用者:https://github.com/docker/roadmap/issues/51