我非常满意Docker默认给我的IP范围176.17.x.x
,所以我不需要创建一个新桥,我只想给我的容器一个静态地址在这个范围内,所以我可以指向客户端浏览器直.我试过用
RUN echo "auto eth0" >> /etc/network/interfaces RUN echo "iface eth0 inet static" >> /etc/network/interfaces RUN echo "address 176.17.0.250" >> /etc/network/interfaces RUN echo "netmask 255.255.0.0" >> /etc/network/interfaces RUN ifdown eth0 RUN ifup eth0
从Dockerfile,它正确填充interfaces文件,但接口本身没有改变.实际上,在容器中运行ifup eth0会出现此错误:
RTNETLINK答案:不允许操作无法启动eth0
cantSleepNow.. 30
我已经在这里回答了这个问题 /sf/ask/17360801/ 但我现在看到这个问题实际上比上面提到的要早,所以我也会复制答案:
使用Docker 1.10.1版,轻松构建9e83765.
首先,您需要创建自己的docker网络(mynet123)
docker network create --subnet=172.18.0.0/16 mynet123
而不是简单地运行图像(我将以ubuntu为例)
docker run --net mynet123 --ip 172.18.0.22 -it ubuntu bash
然后在ubuntu shell中
ip addr
此外,您可以使用
--hostname
指定主机名
--add-host
来添加更多条目/etc/hosts
文档(以及您需要创建网络的原因),请访问https://docs.docker.com/engine/reference/commandline/network_create/