【实战】docker网络之pipework

jopen 10年前

pipework是一个能够帮助我们在复杂的系统中,建立容器间的网络互联的工具。本帖采用一个实例说明如何使用pipenetwork将不同host上的两个容器互联起来。

环境

[root@kuber-minion ~]# uname -a  Linux kuber-minion 3.10.0-123.13.2.el7.x86_64 #1 SMP Thu Dec 18 14:09:13 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux  [root@kuber-minion ~]# docker -v  Docker version 1.3.2, build 39fa2fa/1.3.2

安装pipework

[root@kuber-minion ~]# git clone https://github.com/jpetazzo/pipework     [root@kuber-minion ~]# cd pipework/  [root@kuber-minion pipework]# ls  LICENSE  pipework  README.md  [root@kuber-minion pipework]# cp pipework  /usr/bin

测试步骤

host1

docker push centos    docker run -i -t --net=none --name centos centos:7 /bin/bash  pipework br0  centos 172.28.1.2/24@172.28.1.1   brctl  addif br0  eth0  ip addr add 172.28.1.1/24 dev br0

host2

docker push centos    docker run -i -t --net=none --name centos centos:7 /bin/bash  pipework br0  centos 172.28.1.4/24@172.28.1.3  brctl  addif br0  eth0  ip addr add 172.28.1.3/24 dev br0

网络示意图

【实战】docker网络之pipework

图中vthA和vethB是一对”peer” interface均由pipework创建,添加到br0也有pipework完成。本帖只是给出基于bridge的一个实例,后续会继续分析pipework的原理及其支持的ovs和host网络模式。

原文链接: http://openstack.wiaapp.com/?p=1154