docker 集群服务名称

docker swarm service name

我是 swarm 的新手,正在尝试弄清楚如何设置服务名称以便从不同节点访问容器。

我正在使用 docker-撰写文件:

version: '3.1'
services:
  service-ui:
    image: service-ui:release
    deploy:
      placement:
        constraints:
          - node.role == manager
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 5
    ports:
      - "443:443"

docker deploy -c docker-compose.yml stackname 来启动堆栈。

我的服务名称正在生成为以下格式:stackname_servicename.1,而我通过 ServiceName 访问它。如何在 swarm 模式下为服务设置常量名称?

在同一个 compose 文件中,所有服务都可以使用彼此的 serviceName,因为有内部 DNS。

在你的文件中,你有服务 bigid-ui,它是所有此类服务的 DNS 记录,所以即使你扩展你的应用程序,你也会得到 bigid-ui.1 和其他时间 bigid-ui.2 但两者都有 dns 记录 bigid-ui。

此名称仅适用于同一撰写文件中的其他服务。如果你这样做 docker ps -a 它会告诉你 stackanme_bigid-ui.1 这是正确的。