【发布时间】:2016-04-28 02:13:36
【问题描述】:
我正在尝试在 Docker 中设置一个网桥,该网桥桥接到主机上的外部接口。
我在 CentOS 7 上运行 Docker 10.11
这个博客解释得很好……
这是我 docker 的命令
我根据这里的命令创建了网桥:
sudo docker network create \
--driver bridge \
--subnet=192.168.33.0/24 \
--gateway=192.168.33.10 \
--opt "com.docker.network.bridge.name"="docker1" \
shared_nw
然后我将它添加到外部接口
sudo brctl addif docker1 eth1
我创建了一个容器并为其分配了网络上的 IP。
我可以从主机本身毫无问题地 ping 它,但是创建 docker 网桥不会使分配给网桥的 ip 或分配给容器的 ip 可以从网络上的另一台机器访问,同样网络本身也是'不可访问。
我好像错过了什么。我认为网桥应该允许容器使用与主机相同的子网。
ip地址
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master docker1 state UP qlen 1000
link/ether 00:50:56:aa:41:10 brd ff:ff:ff:ff:ff:ff
inet6 fe80::250:56ff:feaa:4110/64 scope link
valid_lft forever preferred_lft forever
3: docker1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 02:42:d9:cc:37:ff brd ff:ff:ff:ff:ff:ff
inet 192.168.33.10/24 scope global docker1
valid_lft forever preferred_lft forever
inet6 fe80::42:d9ff:fecc:37ff/64 scope link
valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 02:42:5c:8a:0f:57 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 scope global docker0
valid_lft forever preferred_lft forever
brctl 显示
bridge name bridge id STP enabled interfaces
docker0 8000.02425c8a0f57 no
docker1 8000.0242d9cc37ff no eth1
【问题讨论】:
-
在添加
eth1到网桥之前,它是否有192.168.33.0/24网络上的ip地址?您是否能够从网络上的其他主机访问该地址?此网络上是否还有其他主机(特别是使用同一范围内的 ips)? -
不...地址已从适配器中删除,我删除了启动时间脚本,因此它也不会配置或抓取。
-
对。但我建议执行一个测试,将 Docker 排除在外,这样我们就可以确保这是一个 Docker 配置问题与一个基本的系统配置问题。也许你可以设置它并让我们知道结果?
-
要回答您的问题,是的,它能够访问网络上的其他主机以及该范围内的网络上的其他主机。
-
好的。在将
eth1添加到 docker 网桥之后,(a)docker1网桥是否有一个有效的 IP 地址(例如,在 192.168.33.0/24 网络上的一个),并且 (b) 你 还是 能够访问该网络上的其他主机吗?另外,eth1是您系统上连接到此特定网络的唯一接口(也就是说,您的主机是否有可能由于配置了另一个接口而成功)?
标签: networking docker subnet bridge