docker - Docker Swarm:docker stack 在未标记的图像上部署结果
问题描述
我正在使用docker swarm mode主机将一些图像从我的注册表部署到我的应用程序服务器中:
我在注册表中的图像看起来像这样(正在执行docker images
):
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost:5000/myApp G02R00C09_myTag c1fc2242f9a0 2 hours ago 272MB
在我的 docker compose 文件下,我的服务如下所示:
---
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
:
我的堆栈和服务运行良好(当我运行时docker stack ls
,docker service ls
一切正常)
->但是在运行时docker images
,我确实得到了我的图像,但带有 <none>
标签:
image: myRegistryServer:5000/myApp <none>
解决方案
这个是正常的。使用 Swarm Stacks 时,它会将您的标签转换为该图像的 SHA256 并下载该特定 ID。这保证了每个节点都有相同的图像。如果它只依赖于标签,您可能会在 a 中重复使用标签docker push
,并且不同的节点可能会下载不同的图像。
您可以看到在 adocker service ls
或docker stack ps <stackname>
推荐阅读
- f# - StackOverflow同时遍历带有记录键类型的地图
- java - 将 WAR 部署到 Wildfly 14 时 commons-lang3 的 ClassNotFoundException
- java - Java-Stream-API:地图归约
- typescript - Not able to import class in angular 5
- java - 在 JavaFX XYSeries 中找到最大 Y
- struct - 如何制作一个所有字段都是公共的公共结构而不为每个字段重复“pub”?
- java - stuck with a malfunctioning while loop
- android - 如何在 React Native 中获取在线当前日期和时间
- prestashop - My Prestashop Back Office Is not lising payment methods
- python - How to disable vscode autocomplete when using a dot after an integer in python?