首页 > 解决方案 > docker swarm 服务名称

问题描述

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

我正在使用 docker-compose 文件:

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 模式下为服务设置一个常量名称?

标签: dockerdocker-swarmdocker-swarm-mode

解决方案


在同一个 compose 文件中,所有服务都可以通过 serviceName 相互使用,因为有内部 DNS。

在您的文件中,您的服务bigid-ui是此类所有服务的 DNS 记录,因此即使您扩展应用程序一次,您将获得 bigid-ui.1 和其他时间 bigid-ui.2 但两者都有 dns 记录只是 bigid -ui。

此名称仅可用于同一撰写文件中的其他服务。如果您这样做docker ps -a,它将向您显示正确的 stackanme_bigid-ui.1。


推荐阅读