在使用 Docker Compose 时,如何确定和设置 /etc/hosts
中 Docker 主机的 IP 地址?主机运行 Linux 时 Docker 容器的文件?我想要一个像 DOCKER_HOST
这样的主机名在容器中引用 Docker 主机。
Docker for Linux 尚不支持 host.docker.internal
,不像 Docker for Windows 和 Docker for Mac,所以我们需要一个替代方案。--network host
不能在这里使用,因为出于我的目的 localhost
在容器中仍然必须引用容器本身。
Docker Compose 支持使用 extra_hosts
在 /etc/hosts
中添加主机名-IP 映射,但我无法弄清楚如何自动确定要使用的主机 IP 地址。
version: '3'
services:
api:
build: .
ports:
- "8080:8080"
extra_hosts:
- "DOCKER_HOST:X.X.X.X" # <=== How do we automatically set this IP address?
是否可以执行以下操作,我们不必在启动容器时手动定义 Docker 主机 IP 地址?
DOCKER_HOST=`command_to_get_host_ip` docker-compose up -d
或者我们可以为
docker-compose.yml
中的Docker主机设置一个静态IP吗? ?
最佳答案
你可以试试 :
DOCKER_HOST=$(python -c 'import socket;print(socket.gethostbyname(socket.gethostname()))') docker-compose up -d
关于linux - Docker Compose 在容器的/etc/hosts 中设置 Linux Docker 主机 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61897146/