在工作中docker容器会部署在不同的服务器中,那么就涉及到不同的机器间容器的相互通信。我们都知道docker-compose用于容器编排,但是只能解决单台服务器上容器间的通信问题。在本课程中我们将实现不同的服务器间容器的通信。
我们采用的技术是weave,属于第三方网络项目,基于UDP的数据传输,其工作原理是创建一个连接多个主机的虚拟网络,类似于一个以太网交换机,所有的容器都连接到上面,互相通信。
node1 | node2 |
---|---|
192.168.2.217 | 192.168.2.250 |
注意:两台服务的防火墙必须都要开启。
A. 下载weave脚本 https://github.com/weaveworks/weave
下载 weave文件,或者直接将其内容拷贝到 /usr/local/bin 目录下,然后执行如下命令:
chmod a+x /usr/local/bin/weave
B. 分别执行如下两个命令:
weave version weave launch
执行完如上的命令后会下载三个镜像,并且会自动启动一个容器,如下图所示:
C. 在另外一台机器上执行同样的命令。
A. 将各主机间的weave实现互联
weave connect 192.168.2.217 #在192.168.2.250机器上执行 weave connect 192.168.2.250 #在192.168.2.217机器上执行
B. 各自启动一个centos容器
docker run -it centos /bin/bash
C.使用weave规划网络
weave attach 172.10.3.23/24 e2e4909711b7 # 192.168.2.250 weave attach 172.10.3.24/24 e2e4909711b7 # 192.168.2.217
D. 分别进入到两个容器中互 ping
两台服务器都新创建了相同的网络,且在同一网段