Docker基于Swarm实现跨主机容器通讯

一、安装Docker

参考文档

二、创建集群

节点名称 节点角色 ip地址 容器名称
no1 manager 192.168.123.54 host-01-docker
no2 worker 192.168.123.144 host-02-docker

1、在 manager 节点创建 Swarm 集群

docker swarm init --advertise-addr=192.168.123.54

image-20220805143127732

2、在worker节点上执行命令,将自己加入集群

docker swarm join --token SWMTKN-1-3vh2djhbe74mz59229769ddb4o05jdwwh1kve95chulqo4vbe4-3yrjfc15n4r092tao8r6cl796 192.168.123.54:2377

3、在manager节点,查看当前网络集群的节点情况

# 查询节点列表
docker node ls

image-20220805143356144

4、在 manager 节点,创建 overlay 网络

docker network create -d overlay  --attachable  demo

说明:--attachable 声明当前创建的网络为:其他节点可以访问的网络

5、在 worker 节点,查看网络列表,是否多了这个网络

docker network ls

image-20220805151749192

6、在 worker 节点启动 host-02-docker容器,指定该 overlay 网络

docker run -dit --name host-02-docker --net demo --privileged=true centos

7、查看当前容器ip

ip addr

image-20220805144240868

8、在manager节点启动host-01-docker容器,指向该overlay网络

docker run -dit --name host-01-docker --net demo --privileged=true centos

9、在host-01-docker容器中,ping worker节点的host-02-docker 的ip

ping 10.0.1.2

image-20220805144559257

完成