前言:在一些項目中,可能有多個服務器,多個服務器間的容器要如何實現通信呢?這里為大家演示一下。
①首先我準備了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個不同主機間容器的通信。