[英]I have created a docker image for python PyQt4 application using ubuntu 14.04 ,now when i run container i wan to access docker host ip and interfaces
我想獲取 docker 主機的 IP 地址和接口名稱,即 docker 主機的 ifconfig。 相反,我在 docker 容器中執行 ifconfig 時獲取了 docker 容器 ip 地址。
如果有人告訴我從 docker 容器中獲取 docker 主機的 ip 地址,那就太好了。
我試過做 ifconfig dockerhostname,結果我得到錯誤 dockerhostmachi: error fetching interface information: Device not found
這是我的 dockerfile
從 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 結果。
當您運行 docker image/container 時,您可以使用 -e 參數指定一個環境變量。 這樣做可能像: docker run -e ip=docker_host_ip ...
那么它應該在容器端作為環境變量可用。
以上問題的答案如下。
$ 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 時連接到您的網絡主機。
$ 須藤泊塢窗網絡ls
為您提供網絡列表。
$ sudo docker run -it --network=host myimage
這里 myimage 是我創建的圖像的名稱
第二種方法對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.