gpt4 book ai didi

linux - Docker Compose 在容器的/etc/hosts 中设置 Linux Docker 主机 IP 地址

转载 作者:行者123 更新时间:2023-12-04 18:44:02 25 4
gpt4 key购买 nike

在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com