在docker-compose文件中指定服务标签

时间:2019-06-24 14:50:41

标签: docker docker-compose

在docker-compose文件中标记服务时,只会标记创建的容器,而不会标记服务本身。

我想为使用docker-compose文件创建的服务添加标签。在标签属性下添加标签时,标签只会添加到相应的容器中,而不会添加到服务本身。

在docker service create命令的文档中,标签有两个不同的选项:

  • -container-label:指定容器标签
  • -label:指定服务标签

我想知道为什么docker-compose文件中的label属性仅对应第一个选项。

version: "3.7"

services:
  zalenium:
    image: zalenium:latest
    hostname: zalenium
    deploy:
      placement:
        constraints:
            - node.role == manager
    labels:
        - "de.zalando.gridRole=hub"
    ports:
        - "4444:4444"
    networks:
        - zalenium
    environment:
        - PULL_SELENIUM_IMAGE=true
        - ZALENIUM_PROXY_CLEANUP_TIMEOUT=1800
    command: ["start", "--swarmOverlayNetwork", "tau_zalenium", "--videoRecordingEnabled", "false"]

networks:
    zalenium:
        driver: overlay
        attachable: true

实际结果: 仅创建的容器具有标签“ de.zalando.gridRole”

预期结果: 该服务应带有标签“ de.zalando.gridRole”

1 个答案:

答案 0 :(得分:1)

根据docker-compose参考,您需要指定服务标签,如下所示:

version: "3.7"
services:
  web:
    image: web
    deploy:
      labels:
        com.example.description: "This label will appear on the web service"

添加一个部署部分,并在其中提及您的标签。

与docker一样,在docker swarm上进行部署时也会考虑这些标签。否则,它们将被忽略。