Docker Swarm:docker stack部署未标记图像的结果<无>

时间:2018-05-03 10:32:05

标签: docker docker-compose dockerfile docker-swarm docker-registry

我使用 docker swarm mode hos 来将我的注册表中的一些图像部署到我的应用服务器中:

我在注册表中的图像看起来像这样(执行docker images):

REPOSITORY                                                 TAG                   IMAGE ID            CREATED            SIZE
localhost:5000/myApp                                       G02R00C09_myTag   c1fc2242f9a0        2 hours ago         272MB

我的docker撰写文件下,我的服务如下所示:

---
version: '3.4'
services:
  ihm:
    image: myRegistryServer:5000/myApp:G02R00C09_myTag   
    stdin_open: true
    volumes:
    - /opt/logs:/opt/logs
    tty: true
    ports:
      - target: 80
        published: 80
        protocol: tcp
        mode: host
    deploy:
      mode: global
      placement:
        constraints:
          - node.labels.type == abc
    healthcheck:
      disable: true
执行docker stack deploy

- &gt;

我的堆栈和服务运行良好(当我运行docker stack lsdocker service ls时,一切正常)

- &gt; ,但在运行docker images时,我的图片但是 <none> 标记

image:  myRegistryServer:5000/myApp      <none> 

1 个答案:

答案 0 :(得分:1)

这很正常。使用Swarm堆栈时,它会将您的标记转换为该图像的SHA256并下载该特定ID。这可以保证每个节点具有相同的图像。如果它只依赖于标记,则可能会在workflows中重复使用该标记,并且不同节点可以下载不同的图像。

您可以看到docker pushdocker service ls

中使用的标记