基本上,在工作中我将dhcp地址指定为:
eth0 Link encap:Ethernet HWaddr 5c:26:0a:5a:b8:48
inet addr:10.10.10.193 Bcast:10.10.10.255 Mask:255.255.255.0
inet6 addr: <addr here>/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3591236 errors:0 dropped:0 overruns:0 frame:0
TX packets:2057576 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3449424352 (3.4 GB) TX bytes:384131635 (384.1 MB)
Interrupt:20 Memory:e2e00000-e2e20000
有了这个,我的主人,可以很好地连接到互联网。但是我的码头机器都不能在工作时连接到互联网。他们的配置如下:
docker0 Link encap:Ethernet HWaddr 56:84:7a:fe:97:99
inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::5484:7aff:fefe:9799/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:117799 errors:0 dropped:0 overruns:0 frame:0
TX packets:170586 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4858816 (4.8 MB) TX bytes:122237788 (122.2 MB)
当我在家里坐在传统的192.168路由器交换机下时,一切正常。
所以,我在思考,如果我以某种方式让docker0接口坐在eth0后面,那么无论是在家里还是在工作中,一切都会起作用。但我不熟悉配置linux接口。我发现了一篇关于almost the exact same problem的文章,但是根据这些命令更改接口br0到10.10.10.200/24会出现以下症状:
我没有改变iptables;它使用基本ubuntu 14.04主机的默认docker配置更改。
如何最好地配置接口,以便docker允许dockerized应用程序在家中和工作中连接到Internet?
答案 0 :(得分:5)
有关网络和网桥的大量详细信息,请访问:
由于我有一个使用Ubuntu 14.04的虚拟机,我不确定这是否会重现该解决方案。但是,我在我的办公室中具有相同的确切情况,其中一些VPN服务器提供与Docker默认在docker0网桥上使用的相同的默认网络IP。能够在办公室使用Docker而无法在VPN上使用docker的行为真的令人沮丧。
因此,我使用了您使用的链接http://jpetazzo.github.io/2013/10/16/configure-docker-bridge-network/中描述的相同策略,但是在RHEL 6.5服务器上。但是,我确实尝试了许多不同的选项来实现它:
我在RHEL 6.5上有如下解决方案:
[root@pppdc9prd6dq newww]# cat /etc/sysconfig/network-scripts/ifcfg-bridge0
TYPE=Bridge
DEVICE=bridge0
NETMASK=255.255.252.0
IPADDR=192.168.5.1
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no
DELAY=0
以下是您手动创建桥梁的步骤:
<强> 1。停止Docker
$ sudo service docker stop
<强> 2。创建桥梁
$ ip link add bridge0 type bridge
$ ip addr add 192.168.5.1/20 dev bridge0
$ ip link set bridge0 up
第3。更新Docker守护程序以使用网桥
$ vim /etc/docker/daemon.json
$ { "bridge": "bridge0"}
<强> 4。重启Docker
sudo service start docker
如果一切正常,只需永久添加修复
即可<强> 1。与手动相同
<强> 2。更新以下文件
$ vim /etc/network/interfaces
auto bridge0
iface bridge0 inet static
address 192.168.5.1
netmask 255.255.252.0
bridge_ports dummy0
bridge_stp off
bridge_fd 0
第3。与手动相同
<强> 4。与手动相同
并确保服务器上安装了bridge-utils
,否则桥接界面不会出现。
也许这会奏效吗?无论如何,在这里尝试一下,我们可以讨论和改变这个解决方案。我确信当他们开始在VPN内部使用Docker时,会有更多人遇到此问题。