Docker 网络(十)——Docker主机间创建GRE Tunnel

来源:互联网 发布:淘宝品牌无法上架宝贝 编辑:程序博客网 时间:2024/05/17 03:34

10 Docker主机间创建GRE Tunnel

准备两台安装Docker的主机,网络分配和拓扑如下:
这里写图片描述

停止Docker进程,删除网桥docker0

ubuntu@ubuntu:~$ sudo suroot@ubuntu:/home/ubuntu# service docker stopdocker stop/waitingroot@ubuntu:/home/ubuntu# ip link set dev docker0 downroot@ubuntu:/home/ubuntu# ip link del docker0

Host1

root@ubuntu:~# ip tunnel add foo mode gre local 192.168.56.10 remote 192.168.56.20root@ubuntu:~# ip link set foo uproot@ubuntu:~# ip addr add 172.17.127.254 dev fooroot@ubuntu:~# ip route add 172.17.128.0/17 dev foo

配置GRE Tunnel foo
Host2

root@ubuntu:~# ip tunnel add bar mode gre local 192.168.56.20 remote 192.168.56.10root@ubuntu:~# ip link set bar uproot@ubuntu:~# ip addr add 172.17.255.254 dev barroot@ubuntu:~# ip route add 172.17.0.0/17 dev bar

隧道就配好了,试一下两端可以通信了
接下来配置Docker的网络
Host1

echo ‘DOCKER_OPTS=”–bip=172.17.0.1/17 –fixed-cidr=172.17.0.0/17”’ >> /etc/default/docker

Host2

echo ‘DOCKER_OPTS=”–bip=172.17.128.1/17 –fixed-cidr=172.17.128.0/17”’ >> /etc/default/docker

启动Docker进程,在两台主机上各启动一个容器。
Host1

ubuntu@ubuntu:~$ docker run -it --rm ubuntu:14.04 bashroot@c76103d25dbf:/# ip a show eth0140: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default     link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff    inet 172.17.0.2/17 scope global eth0       valid_lft forever preferred_lft forever    inet6 fe80::42:acff:fe11:2/64 scope link        valid_lft forever preferred_lft foreverroot@c76103d25dbf:/# ping -c1 172.17.128.2PING 172.17.128.2 (172.17.128.2) 56(84) bytes of data.64 bytes from 172.17.128.2: icmp_seq=1 ttl=62 time=1.00 ms--- 172.17.128.2 ping statistics ---1 packets transmitted, 1 received, 0% packet loss, time 0msrtt min/avg/max/mdev = 1.009/1.009/1.009/0.000 ms

Host 2

ubuntu@ubuntu:~$ docker run -it --rm ubuntu:14.04 bashroot@b4c077cc0ae0:/# ip a show eth021: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default     link/ether 02:42:ac:11:80:02 brd ff:ff:ff:ff:ff:ff    inet 172.17.128.2/17 scope global eth0       valid_lft forever preferred_lft forever    inet6 fe80::42:acff:fe11:8002/64 scope link        valid_lft forever preferred_lft foreverroot@b4c077cc0ae0:/# ping -c1 172.17.0.2PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.64 bytes from 172.17.0.2: icmp_seq=1 ttl=62 time=1.12 ms--- 172.17.0.2 ping statistics ---1 packets transmitted, 1 received, 0% packet loss, time 0msrtt min/avg/max/mdev = 1.125/1.125/1.125/0.000 ms

至此 两台主机上的容器就可以互相通信了。

0 0
原创粉丝点击