Docker之weave工具

为什么80%的码农都做不了架构师?>>>   hot3.png

weave是什么呢?weave创建了一个虚拟网络,用来连接部署在多台机器上的docker容器。

下面看看weave的应用场景:

1    

Docker之weave工具_第1张图片

    应用在使用该网络的时候就像所有的容器都在同一个交换机网络下一样,不需要配置端口映射、连接等等,容器中的应用提供的服务在weaver网络中可以被外部世界访问,不论你的容器运行在哪里。同样的,已经存在的系统应用也可以暴露给容器中的应用来调用,而不用担心内部应用运行的位置。

2

Docker之weave工具_第2张图片

    weave可以穿透防火墙,流量是被加密的,允许主机连接通过一个不被信任的网络,使用weave你可以方便的部署多个容器在不同的地方运行

3    安装weave

apt-get install ethtool conntrack
git clone https://github.com/zettio/weave.git
cd weave
chmod 755 weave

4    假如你有一个docker应用运行在两台不同的主机HOST1和HOST2上面,也就是我们要在这两台主机上各部署一个相同类型的docker应用。

    在HOST1上面:

        启动weave

#这一步先启动weave路由,需要在每一台HOST上都启动
weave launch    

#启动一个容器,在命令行设置了一个ip,weave run调用docker run -d,因此我们可以使用这种办法启动一个容器,同理存在weave start命令,它是调用docker start命令启动已经存在的容器,如果我们在该HOST1上有多个容器要部署,则继续执行第二行的命令即可,只要保证容器设置的ip没有冲突即可,同一个网段的ip可以到处使用
ssh=$(weave run 10.1.1.1/24 -t -i ubuntu)

    在HOST2上面:

        启动weave

#这一步有点不一样,我们在HOST2上告诉weave他有一个同行在HOST1上,可以指定ip或者主机名,还可以指定端口。如果在HOST1和HOST2直接有防火墙,要确保tcp/udp的6783端口被打开
weave launch $HOST1  

#和第一步中不同的地方在于,配置的IP不一样
ssh=$(weave run 10.1.1.2/24 -t -i ubuntu)

    我们也可以告诉HOST1去连接HOST2,或者两者都告诉他们,这是没有任何问题的,weave会自动的连接,在他们的服务启动后,我们也可以告诉weave连接多个同行,你可以提供多个ip地址,用空格分开即可。

    在HOST1上面:

docker attach $ssh

    在HOST2上面:

docker attach $ssh

    然后两者进行互ping,会发现网络是通的


转载于:https://my.oschina.net/guol/blog/345041

你可能感兴趣的:(Docker之weave工具)