Docker容器无法ping通networking侧

我正在学习docker集装箱,现在我正在尝试为docker集装箱设置一个networking。

Docker基本上使用具有172.17.0.0/16networking的'docker0'网桥,并且该networking不是同一个主机networking。

我想要docker容器和主机容器使用相同的networking。 所以现在我正在试图在没有“桥梁驱动程序”的情况下补充docker集装箱的networking。

我正在使用共享器使用192.168.77.0/24networking。 我希望主机和docker容器使用这个networking。

我在这里引用 – https://docs.docker.com/v1.7/articles/networking/#how-docker-networks-a-container 。

下面是我尝试组成容器networking的命令。 所有的命令都以root用户身份运行。

 # ifconfig eth0 promisc # docker run -i -t --net=none --name net_test ubuntu_net /bin/bash # docker inspect -f '{{.State.Pid}}' net_test # 14673 # pid=14673 # mkdir -p /var/run/netns # ln -s /proc/$pid/ns/net /var/run/netns/$pid # brctl addbr my_bridge # brctl addif my_bridge eth0 # ifconfig my_bridge 192.168.77.250 up # route del default gw 192.168.77.1 # route add default gw 192.168.77.1 # ifconfig eth0 0.0.0.0 up # ip link add veth0 type veth peer name veth1 # brctl addif my_bridge veth0 # ip link set veth0 up # ip link set veth1 netns $pid # ip netns exec $pid ip link set dev veth1 name eth0 # ip netns exec $pid ip link set eth0 address 12:34:56:78:9a:bc # ip netns exec $pid ip link set eth0 up # ip netns exec $pid ip addr add 192.168.77.251/24 broadcast 192.168.77.255 dev eth0 # ip netns exec $pid ip route add default via 192.168.77.1 

在这些命令后,docker集装箱可以ping通主机,主机可以ping通docker集装箱,但是集装箱不能ping通外部networking。

下面是执行命令后在主机中的路由表。

 Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.77.1 0.0.0.0 UG 0 0 0 my_bridge 172.17.0.0 * 255.255.0.0 U 0 0 0 docker0 192.168.77.0 * 255.255.255.0 U 0 0 0 my_bridge 

执行完后,Docker容器中的路由表如下所示

 commands.Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.77.1 0.0.0.0 UG 0 0 0 eth0 192.168.77.0 * 255.255.255.0 U 0 0 0 eth0 

但是docker容器也不能ping通网关(192.168.77.1)。

我使用的是Ubuntu 14.04 LTS桌面版本。 我没有设置任何防火墙。

我是否设置了错误? 谢谢。