除了新docker stack deploy之外,我正在研究新的docker compose v3命令,似乎arr
几乎可以取代docker stack deploy
。
我找到的一个不同之处很奇怪,那就是正在运行的容器显示图像名称而不是标记。
这是在通过docker-compose up -d
创建的容器上运行检查的剪辑。
docker-compose up -d
这是在通过{
Command: "node server.js",
Image: "styfle/notification-service:v1.0.0"
}
创建的容器上运行检查的剪辑。
docker stack deploy -c docker-compose.yml --with-registry-auth=true tst
为什么{
Command: "node server.js",
Image: "styfle/notification-service@sha256:827e6a274c5ee2b941dde402f82069c2da644927cac53c0b2cd5acacb739f949"
}
中缺少标记(在本例中为后缀:v1.0.0
)并且可以在其他地方找到它?我使用的是Docker CE 17.03.1-ce-win5(10743)。
答案 0 :(得分:1)
Docker服务使用图像固定来确保swarm中的每个节点都运行相同的图像。如果替换标记或在不同节点上处于不同状态,则sha256摘要将确保仅使用创建服务时使用的v1.0.0版本。有关详细信息,请参阅docker's documentation on the subject。