【发布时间】:2013-12-25 09:32:49
【问题描述】:
当我启动 docker 容器时,我的网络位于 10.0.0.0,它们有一组不同的 IP 地址 (172.17.42.1)
如何让我的容器在同一个 10.0.0.0 网络上启动
我已将 br0 配置为静态,我希望 docker0 共享相同的 ip 范围,以便将 ip 地址分配给同一网络上的容器
【问题讨论】:
标签: networking docker
当我启动 docker 容器时,我的网络位于 10.0.0.0,它们有一组不同的 IP 地址 (172.17.42.1)
如何让我的容器在同一个 10.0.0.0 网络上启动
我已将 br0 配置为静态,我希望 docker0 共享相同的 ip 范围,以便将 ip 地址分配给同一网络上的容器
【问题讨论】:
标签: networking docker
希望此链接对您有所帮助 http://jpetazzo.github.io/2013/10/16/configure-docker-bridge-network/
简而言之,只需将以下内容添加到 /etc/network/interfaces:
auto docker0
iface docker0 inet static
address 172.30.0.1
netmask 255.255.255.0
bridge_ports dummy0
bridge_stp off
bridge_fd 0
然后重启界面,或者重启电脑。
ifdown docker0
ifup docker0
【讨论】:
已经接受答案并不是真正的答案,而只是一个链接。所以我会提供适合我的解决方案。需要注意的是,解决方案可能会被 docker upgrade 覆盖。应该询问您有关在升级包时更换 docker 配置的问题。 配置路径自 Ubuntu 15.10 起有效。
sudo vim /etc/default/docker
将此行添加到文件中
DOCKER_OPTS="--bip=10.66.33.10/24"
然后重启
重启后启动容器
docker run -it --name t2 jangorecki/r-base-dev /bin/bash
并检查容器的 ip
docker inspect --format '{{ .NetworkSettings.IPAddress }}' t2
【讨论】:
在我的 Centos 容器上,我这样做:
docker exec -it c1 bash -c "echo -e 'IPADDR=172.17.0.4 \n HOSTNAME=c1' >> /etc/sysconfig/network-scripts/ifcfg-eth0; /etc/init.d/network restart";
【讨论】:
REAL ANSWER 是这个问题的答案:......并且正在工作,经过自己测试
How to change the IP address of a docker after creating it?
还回答标记为解决方案假设容器是某个发行版(基于 debian/ubuntu)并且其中安装了很多网络工具! 假设是一切之母...-ups
【讨论】: