Docker Swarm with docker compose 版本 3 主机名下划线问题

Docker Swarm with docker compose version 3 hostname underscore issue

我创建了一个 docker 群并尝试使用覆盖网络以便在该群上部署的 2 个服务之间进行通信。 Docker 由 1 个服务组成的内容如下所示:

version: '3'
services:
  web:
    container_name: "eureka"
    image: eureka
    environment:
      EUREKA_HOST: eureka
    ports:
      - 8070:8070
    networks:
      - net_swarm
networks:
  net_swarm:
    external:
      name: net_swarm

第二个:

version: '3'
services:
  web:
    image: zuul-service
    environment:
      EUREKA_HOST: eureka_web
    ports:
      - 8069:8069
    networks:
      - net_swarm
networks:
  net_swarm:
    external:
      name: net_swarm

我做了一个 docker deploy --compose-file docker-compose.yml eureka 来创建服务 1,它以服务名称作为 eureka_web 旋转,如上所示,在服务 2 的组合文件中引用为 [=23] =],但是由于此 "eureka_web" 有一个下划线,因此在尝试 运行 第二个文件时不会选择主机。(主要是因为下划线) 我可以以某种方式覆盖服务名称中的下划线还是有其他解决方法?

不要给出容器名称。

这样您的服务名称将充当主机名。

另外带下划线的主机名应该不会造成任何问题。尝试找出真正的根本原因。

编辑: 您的服务名称和主机名称是 web。如果不查看 docker 文件,我就不能说这一行。

environment:
  EUREKA_HOST: eureka