【问题标题】:How to get the ip address of eth0 wlan0 of a host from docker container如何从docker容器中获取主机的eth0 wlan0的ip地址
【发布时间】:2018-01-03 11:08:42
【问题描述】:

我在主机上运行了一个 docker 容器。如果我这样做 ip addr show 它会给出分配给容器的 IP 地址。这个 ip 地址是 docker 为其虚拟网络创建的 ip 地址。

我的主机有wlan0eth0。有什么办法可以得到主机的wlan0eth0的ip地址。

谢谢

【问题讨论】:

    标签: docker networking


    【解决方案1】:

    是的,您必须将网络模式更改为“主机”。

    https://docs.docker.com/engine/reference/run/#network-settings

    【讨论】:

    • 我宁愿用一些环境变量和这个信息来构建容器,或者docker run -e HOST_WLAN0=1.2.3.4...
    • @user2915097 使用docker run -e HOST_WLAN0=1.2.3.4... 可以获取容器中wlan0的ip地址吗?
    • docker 背后的想法是将容器与主机隔离开来。所以容器应该不能在主机内部连接。因此,您要么在用于构建映像的 Dockerfile 中拥有类似 ENV HOST_WLAN0 1.2.3.4 的东西,要么在运行时提供此信息。但是容器应该无法从主机获取此信息,您需要将其提供给容器,无论是在构建时(ENV)还是在运行时(-e)
    • >>>通过使用 docker run -e HOST_WLAN0=1.2.3.4... 可以获取容器中 wlan0 的 IP 地址吗?是的,它将在 $HOST_WLAN0 环境变量中。
    • 如果你的主机是Linux,那么你可以尝试: docker run -e HOST_WLAN0=ip addr ... 在容器中,你可以解析$HOST_WLAN0。
    最近更新 更多