前言:在一些项目中,可能有多个服务器,多个服务器间的容器要如何实现通信呢?这里为大家演示一下。
①首先我准备了2个linux,如图:分别为Docker1和docker2
准备服务器
②开启相应的端口,2377/tcp,7946/tcp,7946/udp,4789/udp。
firewall-cmd --add-port=2377/tcp --permanentfirewall-cmd --add-port=7946/tcp --permanentfirewall-cmd --add-port=7946/udp --permanentfirewall-cmd --add-port=4789/udp --permanentfirewall-cmd --reload
开启端口
③、以docker1为主机,在他这里安装swarm,命令(docker swarm init)
docker1安装swarm
生成红框中的内容:
docker swarm join --token SWMTKN-1-5r3wg36i5fh5er4ah27he562wb53bpljwx480ce4dumkstg0nz-bez7l9ve9hsz92z19e1lm6wa5 192.168.3.130:2377
④在docker2中输入上面的信息
docker2输入上面信息
此时在docker1上查看节点是否添加成功(docker node ls)
查看节点信息
⑤在docker1上查看网络信息(docker network ls)
查看网络信息
会有一个swarm网络,基于这个网络创建一个共享网络,这里要注意swarm主要是用来管理集群的。
docker network create -d overlay --attachable sharedent
创建共享网络
⑥、分别在docker1和docker2上创建容器
docker1创建容器示例
创建好以后,进入到docker1的tom1容器中,ping docker2的ip
ping
这样就实现了2个不同主机间容器的通信。