# Docker基于Swarm实现跨主机容器通讯
# 一、安装Docker
[参考文档](https://blog.levnli.cn/archives/centos7an-zhuang-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`

## 2、在worker节点上执行命令,将自己加入集群
`docker swarm join --token SWMTKN-1-3vh2djhbe74mz59229769ddb4o05jdwwh1kve95chulqo4vbe4-3yrjfc15n4r092tao8r6cl796 192.168.123.54:2377`

## 3、在manager节点,查看当前网络集群的节点情况
执行`docker node ls`

## 4、在 manager 节点,创建 overlay 网络
`docker network create -d overlay --attachable demo`
说明:`--attachable` 声明当前创建的网络为:其他节点可以访问的网络
## 5、在 worker 节点,查看网络列表,是否多了这个网络
`docker network ls`

## 6、在 worker 节点启动 host-02-docker容器,指定该 overlay 网络
`docker run -dit --name host-02-docker --net demo --privileged=true centos`
## 7、查看当前容器ip
`ip addr`

## 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`

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