1

我想获取 docker 主机 ip 地址和接口名称,即 docker 主机的 ifconfig。相反,我在 docker 容器中执行 ifconfig 时获取了 docker 容器 IP 地址。

如果有人告诉我从 docker 容器中获取 docker 主机的 IP 地址,那就太好了。

我试过做 ifconfig dockerhostname,结果我得到错误 dockerhostmachi: error fetching interface information: Device not found

这是我的码头文件

来自 ubuntu:14.04

安装依赖项

运行 apt-get update && apt-get install -y\python-dev\libffi-dev\libssl-dev\python-enum\apache2\libapache2-mod-wsgi\python-pip\python-qt4

RUN chmod -R 777 /var/log/apache2/error.log
RUN chmod -R 777 /var/log/apache2/other_vhosts_access.log
RUN chmod -R 777 /var/log/apache2/access.log
RUN chmod -R 777 /var/run/apache2/

运行 a2enmod wsgi

我需要从 docker 容器或运行 docker 映像时获取 docker 主机的 ifconfig 结果。

4

2 回答 2

0

当您运行 docker image/container 时,您可以使用 -e 参数指定环境变量。这样做可能像: docker run -e ip=docker_host_ip ...

那么它应该在容器端作为环境变量可用。

https://medium.com/the-code-review/top-10-docker-run-command-options-you-cant-live-without-a-reference-d256834e86c1

于 2019-05-27T15:41:36.130 回答
0

上述问题的答案如下。

  1. 方法:您可以创建自己的网络并与之通信。

$ sudo docker network create --driver=bridge --subnet=192.168.10.0/24 --gateway=192.168.10.1 doc1net

$ sudo docker network create --driver=bridge --subnet=10.45.0.0/24 --gateway =10.45.0.0 doc1net

这里的子网和网关可以是你自己的网络地址,doc1net 是我的网络名称。

2 方法

在运行 docker 时,请与您的网络主机连接。

$ sudo docker network ls
为您提供网络列表。

$ sudo docker run -it --network=host myimage
这里 myimage 是我创建的镜像的名称

第二种方法对我有用。

于 2019-05-30T05:34:50.137 回答