docker-compose中的域配置

时间:2018-04-19 05:29:33

标签: docker dns docker-compose

如何使用docker-compose.yml中的域配置主机名?

假设服务worker需要web地址上的服务http://web.local/。但无论我使用web.local指令配置什么,hostname都无法解析为IP地址。添加extra_hosts指令也不起作用,因为我应该知道服务的web的ip,我没有,因为它是由docker分配的。

搬运工-compose.yml:

version: '3'
services:
  worker:
    build: ./worker
    networks:
      - mynet    
  web:
    build: ./web
    ports:
      - 80:80
    hostname: web.local
    networks:
      - mynet
networks:
  mynet:

ping web.local无法在服务worker

内解析

1 个答案:

答案 0 :(得分:4)

要实现此目的,您需要在网络alias中添加mynet

来自official文档:

  

网络上此服务的别名(备用主机名)。其他   同一网络上的容器可以使用服务名称或此名称   别名连接到其中一个服务的容器。

因此,您的docker-compose.yml文件应如下所示:

version: '3'
services:
  worker:
    build: ./worker
    networks:
      - mynet  
  web:
    build: ./web
    ports:
      - 80:80
    hostname: web.local
    networks:
       mynet:    
          aliases:
            - web.local
networks:
  mynet: