如何向“添加标签”;“部署”;通过docker服务创建

如何向“添加标签”;“部署”;通过docker服务创建,docker,docker-swarm,traefik,Docker,Docker Swarm,Traefik,我通常使用docker compose创建堆栈,但是当我有一个服务时,我更喜欢直接将其作为一个服务创建,而不使用底层(和无用的)堆栈 我的问题是关于我需要在“部署”部分下设置的标签,例如Traefik的标签: deploy: replicas: 1 labels: - "traefik.enable=true" - "traefik.gis.frontend.rule=PathPrefix:/sig" - "traefik.web.frontend.rule=PathP

我通常使用docker compose创建堆栈,但是当我有一个服务时,我更喜欢直接将其作为一个服务创建,而不使用底层(和无用的)堆栈

我的问题是关于我需要在“部署”部分下设置的标签,例如Traefik的标签:

deploy:
  replicas: 1
  labels:
   - "traefik.enable=true"
   - "traefik.gis.frontend.rule=PathPrefix:/sig"
   - "traefik.web.frontend.rule=PathPrefixStrip:/web"
   - "traefik.port=80"
   - "traefik.docker.network=traefik-network"
我不知道如何通过docker服务创建来设置它们。此将不起作用,因为Traefik要求在“部署”部分下设置标签:

docker service create \
    --name myService \
    --with-registry-auth \
    --network traefik-net \
    --label "traefik.enable=true" \
    --label "traefik.gis.frontend.rule=PathPrefix:/sig" \
    --label "traefik.web.frontend.rule=PathPrefixStrip:/web" \
    --label "traefik.port=80" \
    --label "traefik.docker.network=traefik-net" \
    dvgerdrh2:5050/georeso/someImage:1.3.2
有什么办法吗?

试试--label traefik.enable=“true”


你认为你的引号放错地方了吗

为什么不使用YML和
docker stack deploy…
?我经常这样做。但我想学习如何使用docker service create进行同样的操作。看起来你的方法是对的,但双引号可能会出错。在文档中的示例中,我们尝试了两种方法,但并没有成功我希望标签与“部署”相关"。如果我按我尝试的方式执行,则标签与服务本身关联。。而不是与服务的部署部分关联,从而导致Traefik无法正确使用它。部署部分定义服务上的标签,这是您使用的cli选项。您还可以定义一个级别的标签,使容器标签成为另一个cli选项。您的语法对于为swarm模式配置的traefik来说是正确的。