【问题标题】:change docker containers IP address更改 docker 容器 IP 地址
【发布时间】: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


【解决方案1】:

希望此链接对您有所帮助 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

【讨论】:

  • 当我进入第 3 步“ip addr add 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)?!?
【解决方案2】:

已经接受答案并不是真正的答案,而只是一个链接。所以我会提供适合我的解决方案。需要注意的是,解决方案可能会被 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

【讨论】:

  • 可能,建议编辑接受的答案,然后重复?
  • @Evedel 请在判断相似性之前阅读其他答案中的链接。这是一个不同的解决方案。
【解决方案3】:

在我的 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";

【讨论】:

    【解决方案4】:

    REAL ANSWER 是这个问题的答案:......并且正在工作,经过自己测试

    How to change the IP address of a docker after creating it?

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

    【讨论】:

    • 我喜欢链接帖子中的答案,但您会复制该帖子中的重要细节(保留链接)吗?即使链接的线程发生问题,在此处保存数据也可以使您的答案有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    • 2022-09-27
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    相关资源
    最近更新 更多