Docker Swarm与docker撰写版本3主机名下划线问题

时间:2018-03-27 08:36:29

标签: docker docker-compose docker-swarm

我创建了一个docker swarm并尝试使用覆盖网络,以便在该群集上部署的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的compose文件中引用为EUREKA_HOSTS,但是因为这个“eureka_web”有在尝试运行第二个文件时主机未被选中的下划线。(主要是下划线的becoz) 我可以以某种方式覆盖服务名称中的下划线,还是有任何其他解决方法?

1 个答案:

答案 0 :(得分:2)

不要给出容器名称。

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

带下划线的主机名也不应该导致任何问题。尝试找出实际的根源。

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

environment:
  EUREKA_HOST: eureka