【发布时间】:2020-05-27 17:46:32
【问题描述】:
我正在使用docker stack deploy 部署 4 个容器,如下所示:
docker stack deploy --compose-file compose.yml --with-registry-auth myapp
第一次使用registry上的最新镜像构建容器,没问题。
但是当我将新图像推送到注册表并再次运行命令时,容器不会使用最新图像重建。
我在我的图片中使用了latest 标签。我知道这不是推荐的做事方式,但对于我在文档中阅读的内容,docker stack deploy 如果使用latest 标记,将使用注册表检查图像 sha,如果不同,容器将重建使用最新的图像,但在我的情况下,它没有发生。我在这里遗漏了什么吗?
一旦堆栈已经启动,我在运行docker stack deploy 时也会收到错误/警告:
Updating service service_name (id: some_hash_value)
image docker.pkg.github.com/username/repository/image-name:latest could not be accessed on a registry to record
its digest. Each node will access docker.pkg.github.com/username/repository/image-name:latest independently,
possibly leading to different nodes running different
versions of the image.
【问题讨论】:
-
只是好奇,为什么在图片中使用最新标签不是推荐的方式?我以前从未遇到过这种情况?
-
@J.ScottElblein 没有任何问题,但不是推荐的方式。看看这个vsupalov.com/docker-latest-tag
-
@J.ScottElblein 也阅读了这个github.com/moby/moby/issues/31357#issuecomment-430791141
标签: docker docker-compose docker-swarm