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

标签 linux docker ubuntu networking docker-compose

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

相关文章:

linux - 多核处理器之间的区别

找不到 mysql_upgrade

linux-kernel - $(uname -a) 在 docker 主机或任何 docker 容器中返回相同的值

java - 在 ubuntu 上设置 eclipse

shell - 从 nmcli 输出中获取以太网连接 ID

linux - SCP:尝试从 Windows 复制到 Linux 服务器时找不到文件

C While 循环不起作用

docker - 不使用卷的情况下备份 docker

docker - 当我的堆栈上的内存少于256个限制时,为什么会发生Docker IP耗尽?

bash - ConEmu 中集成了带有 ZSH 的 WSL Bash - 在此处打开问题