前言:在一些項目中,可能有多個服務器,多個服務器間的容器要如何實現通信呢?這裏爲大家演示一下。
①首先我准備了2個linux,如圖:分別爲docker1和docker2
②開啓相應的端口,2377/tcp,7946/tcp,7946/udp,4789/udp。
firewall-cmd --add-port=2377/tcp --permanent
firewall-cmd --add-port=7946/tcp --permanent
firewall-cmd --add-port=7946/udp --permanent
firewall-cmd --add-port=4789/udp --permanent
firewall-cmd --reload
③、以docker1爲主機,在他這裏安裝swarm,命令(docker swarm init)
生成紅框中的內容:
docker swarm join \
--token SWMTKN-1-5r3wg36i5fh5er4ah27he562wb53bpljwx480ce4dumkstg0nz-bez7l9ve9hsz92z19e1lm6wa5 \
192.168.3.130:2377
④在docker2中輸入上面的信息
此時在docker1上查看節點是否添加成功(docker node ls)
⑤在docker1上查看網絡信息(docker network ls)
會有一個swarm網絡,基于這個網絡創建一個共享網絡,這裏要注意swarm主要是用來管理集群的。
docker network create -d overlay --attachable sharedent
⑥、分別在docker1和docker2上創建容器
創建好以後,進入到docker1的tom1容器中,ping docker2的ip
這樣就實現了2個不同主機間容器的通信。