docker compose中的域配置
如何在docker compose.yml中使用域配置主机名 假设服务docker compose中的域配置,docker,dns,docker-compose,Docker,Dns,Docker Compose,如何在docker compose.yml中使用域配置主机名 假设服务worker期望web上的服务http://web.local/地址。但是web.local不会解析为ip地址,无论我使用hostname指令配置什么。添加extra\u hosts指令也不起作用,因为我应该知道服务web的ip,但我不知道,因为它是由docker分配的 docker-compose.yml: version: '3' services: worker: build: ./worker ne
worker
期望web上的服务http://web.local/
地址。但是web.local
不会解析为ip地址,无论我使用hostname
指令配置什么。添加extra\u hosts
指令也不起作用,因为我应该知道服务web
的ip,但我不知道,因为它是由docker分配的
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
要使其正常工作,您需要在网络mynet
中添加一个别名
从文件中:
网络上此服务的别名(备用主机名)。其他
同一网络上的容器可以使用服务名称或此名称
用于连接到服务容器之一的别名
因此,您的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:
您正在尝试从“worker”容器或主机ping“web.local”吗?我想从我的worker ping它。(更具体地说,我想从我的工作人员那里发出http请求,但在ip解析时失败。)嗨,我有一个PostgreSQL容器和一个web服务器。根据这个例子,我的数据库是web
,我的服务器是worker
?@SleebaPaul你能给我更多的细节吗?或者创建一个包含所有详细信息的新问题,我将回答itOkay,因为我有一个PostgreSQL容器和一个Swift服务器容器。我需要将db ip传递给服务器以启动它。因此,我在自定义网桥网络中为db创建了一个别名。但当我这样做时,错误会显示,消息:“无法将主机名\“mynetworkdb\”转换为地址:名称解析暂时失败\n”
@SleebaPaul给我你的docker compose.yml
文件我添加了一个问题。在这里找到它。