Networking 更改docker容器IP地址

Networking 更改docker容器IP地址,networking,docker,Networking,Docker,我的网络是10.0.0.0当我启动docker容器时,它们有一组不同的IP地址(172.17.42.1) 如何让容器在相同的10.0.0.0网络上启动 我已将br0配置为静态,我希望docker0共享相同的ip范围,以便将ip地址分配给同一网络上的容器我希望此链接将对您有所帮助 简而言之,只需在/etc/network/interfaces中添加以下内容: auto docker0 iface docker0 inet static address 172.30.0.1 net

我的网络是10.0.0.0当我启动docker容器时,它们有一组不同的IP地址(172.17.42.1)

如何让容器在相同的10.0.0.0网络上启动


我已将br0配置为静态,我希望docker0共享相同的ip范围,以便将ip地址分配给同一网络上的容器

我希望此链接将对您有所帮助

简而言之,只需在/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升级可能会覆盖解决方案。应该询问您在升级包时是否更换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
docker inspect --format '{{ .NetworkSettings.IPAddress }}' t2
并检查容器的ip

docker run -it --name t2 jangorecki/r-base-dev /bin/bash
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";

真正的答案是:。。。而且正在工作,考验着我自己

另外,答案标记为解决方案假设容器是某个发行版(基于debian/ubuntu),其中安装了很多网络工具!
假设是一切之母,这是怎么回事-ups

当我进入第3步“ip地址添加172.30.1.1/20 dev br0”添加我自己的ip范围时,我遇到了这个错误“错误:需要一个inet前缀,而不是“10.0.0.100/135”。“你知道如何解决它吗斜杠后的值是网络掩码的位数。”。IP地址中没有135位。也许你的意思是/24或/27?(另外,.100对于子网来说不是一个好的基址。)请不要只放链接,因为我有很多来自不同用户的现有docker容器。我需要移除所有现有的容器吗?或者我可以重新启动所有容器,使此更改生效?如果容器是centos?!?如果容器是ubuntu/debian,而没有这些文件/工具(接口、ifup、ifdown)?!?这对我很有帮助:可能是,最好建议编辑已接受的答案,然后再重复?@Evedel在判断相似性之前,请阅读其他答案的链接。这是一个不同的解决方案。我喜欢链接帖子上的答案,但是你能将答案中的重要细节复制到这篇帖子上吗(保留链接)?即使链接的线程发生了什么事情,这里的数据也会使您的答案保持有用。