【问题标题】:How can configure or change eth1 to eth0 on Docker Container如何在 Docker 容器上配置或更改 eth1 为 eth0
【发布时间】:2019-07-23 17:51:54
【问题描述】:

我已经在 centos 7 服务器上安装了 docker。我创建了一个自定义桥并附加了一个 docker 容器。现在,当我执行ifconfig 命令时,我有两个以太网连接:

  • eth0 上的本地网络和
  • eth1 上的自定义网络。

我想在eth0 上设置自定义网络,在eth1 上设置本地网络。我尝试过,但无法在 docker 容器中这样做。请帮忙。

我正在等待您的及时回复。

提前致谢

【问题讨论】:

  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack Exchange 会是一个更好的提问地点。
  • @jww 如果我在这里问与 docker 相关的问题,你有什么问题?我也是程序员,也在做与 devops 相关的任务。我想出了解决方案并在我的项目中实施。

标签: linux docker networking centos network-programming


【解决方案1】:

如何配置或更改...

你不能。最好这样想:你的container 只是一个过程。杀死它并使用正确的配置启动一个新的。

一个想法/例子:

创建您的自定义网桥:

$ docker network create test_net
c5e92fff4e386bab692f849d148509cdb9ae0e70307e0bf8426e62352c56368d

并在执行docker run 时将您的容器附加到此桥(172.18.0.X):

$ docker run -it --network=test_net alpine
...

然后,将容器连接到默认网桥 (172.17.0.X)

$ docker network connect bridge <your_container_name>

让我们看看我们有什么:

$ docker container exec -it <your_container_name> sh
/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:12:00:02  
          inet addr:172.18.0.2  Bcast:172.18.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:54 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:6950 (6.7 KiB)  TX bytes:0 (0.0 B)

eth1      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02  
          inet addr:172.17.0.2  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:50 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:6558 (6.4 KiB)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

【讨论】:

  • 我已经用我的静态 IP 创建了自定义网络,并像这样添加到容器创建时间中。 docker run -it --net cusotm_network --ip 123.78.67.4 这是在 eth0 上设置的,但是当我添加新的桥接网络时,它将继续在 eth1 上,所以我怎样才能在 eth0 上保持静态,请帮助我...
  • @JainHemant 你知道如何做到这一点吗?我也是这种情况
  • @TadasTamosauskas 是的,我已经弄清楚了,让我知道您面临的问题是什么......
  • 我最终使用了 ansible 的 purge_networks 选项,它为我摆脱了默认的 eth0,因此新配置的成为 eth0。
猜你喜欢
  • 2019-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
  • 1970-01-01
相关资源
最近更新 更多