在公司使用docker多主机互联时碰到了各种坑。搞清楚后才发现如此简单,以下是根据实际经验的总结.
版本信息
Client:
Version: 18.09.0
API version: 1.39
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:48:22 2018
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.0
API version: 1.39 (minimum version 1.12)
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:19:08 2018
OS/Arch: linux/amd64
Experimental: false
在主节点上
# 初始化集群
docker swarm init
生成token
docker swarm join-token worker
To add a manager to this swarm, run the following command:
docker swarm join --token SWMTKN-1-3jsci44ma4vq5lu62cw9qb2t91n1du0q8vpl2p0wzkcdk2smfi-bernmboygqmk6idgt5zc2l9z6 192.168.0.244:2377
在其它节点添加到集群
docker swarm join --token SWMTKN-1-3jsci44ma4vq5lu62cw9qb2t91n1du0q8vpl2p0wzkcdk2smfi-bernmboygqmk6idgt5zc2l9z6 192.168.0.244:2377
在任意节点创建网络
docker network create -d overlay --attachable net
此时,在其它节点执行 docker network ls, 可以看到该网络已同步到所有节点,不同节点的主机指定该网络创建的容器之间网络已能互通。