栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

局域网中的Docker 1.10容器的IP

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

局域网中的Docker 1.10容器的IP

编辑:
此解决方案现已无用。从1.12版开始,Docker提供了两个网络驱动程序:macvlan和ipvlan。它们允许从LAN网络分配静态IP。。


寻找有相同问题的人后,我们采取了一种解决方法:

总结 :

  • (V)LAN为192.168.1.0/24
  • 默认网关(=路由器)为192.168.1.1
  • 多个Docker主机
  • 注意:我们有两个NIC:eth0和eth1(专用于Docker)

我们想要什么 :

我们希望在192.168.1.0/24网络中拥有带有ip的容器(例如计算机),而没有任何NAT / PAT /转换/端口转发/等。

问题

这样做时:

network create --subnet 192.168.1.0/24 --gateway 192.168.1.1 homenet

我们可以为容器提供所需的IP, 但是 docker(

br-[a-z0-9]+
)创建的网桥将具有IP 192.168.1.1,这就是我们的路由器。

1.设置Docker网络

使用

DefaultGatewayIPv4
参数:

docker network create --subnet 192.168.1.0/24 --aux-address "DefaultGatewayIPv4=192.168.1.1" homenet

默认情况下,Docker会将

br-[a-z0-9]+
第一个IP
提供给网桥接口(),该IP可能已被另一台机器使用。解决方案是使用
--gateway
参数告诉docker分配任意IP(可用):

docker network create --subnet 192.168.1.0/24 --aux-address "DefaultGatewayIPv4=192.168.1.1" --gateway=192.168.1.200 homenet

我们可以通过添加

-o com.docker.network.bridge.name=br-home-net
到上一个命令来指定网桥名称。

2.架桥!

现在我们有了一个

br-[a-z0-9]+
由Docker创建的网桥()。我们需要将其桥接到物理接口(在我的情况下,我必须连接到NIC,所以我为此使用eth1):

brctl addif br-home-net eth1

3.删除网桥IP

现在我们可以从网桥中删除IP地址,因为我们不需要一个IP地址:

ip a del 192.168.1.200/24 dev br-home-net

192.168.1.200
由于我们不使用该IP,因此可以将其用作多个Docker主机上的桥接。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387362.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号