docker compose中的域配置

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

如何在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
    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
文件我添加了一个问题。在这里找到它。