swarm mode 下 运行 docker stack deploy 命令 pull 下来的 image tag 为none

Posted nieqibest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swarm mode 下 运行 docker stack deploy 命令 pull 下来的 image tag 为none相关的知识,希望对你有一定的参考价值。

首先是在公司的测试环境上发现了这个现象,网上search了一番,这个并不是错误,而是swarm下的一种机制:

当使用 Swarm Stacks时,为了保证Service的副本在每个节点上运行的是相同的镜像,

Swarm采用的是一种叫 Pinning-by-Digest的策略,

而不是根据镜像的tag来使用镜像。

Service会将你指定的镜像tag转换成digest id,并使用这个digest去拉取镜像。

使用 docker service ls 可以查看各个服务使用的镜像版本。

生产实践中最好不要用lastest的镜像tag,可以使用v2.1.0这样的命名。

 

参考:https://github.com/moby/moby/issues/28908

           https://success.docker.com/article/images-tagging-vs-digests

           https://stackoverflow.com/questions/50152854/docker-swarm-docker-stack-deploy-results-on-untagged-images-none

           

 

以上是关于swarm mode 下 运行 docker stack deploy 命令 pull 下来的 image tag 为none的主要内容,如果未能解决你的问题,请参考以下文章

Docker Swarm Mode简介与核心概念

Docker Swarm 和Swarm mode 是两个概念!

Docker Swarm Mode无法增加管理节点

Docker Swarm Mode 入门实践

docker深入2-基于 swarm mode 的服务发现和注册

replicated vs global mode - 每天5分钟玩转 Docker 容器(105)