如何使用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
答案 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: