安装 docker :https://www.cnblogs.com/klvchen/p/8468855.html
安装 docker-compose : https://www.cnblogs.com/klvchen/p/9242774.html
环境:centos 7.4 ,docker version : 18.06.0-ce
node1: 192.168.0.238
node2: 192.168.0.239
配置 docker swarm
docker swarm 需要开放如下端口:
2377:TCP端口2377用于集群管理通信
7946:TCP和UDP端口7946用于节点之间的通信
4789:TCP和UDP端口4789用于覆盖网络流量
# 在 node1 上执行
docker swarm init --advertise-addr 192.168.0.238
# 在 node2 上执行,加入 swarm
docker swarm join --token SWMTKN-1-1rrxq7t0z6bcr2tlkv9fshg8x6dhna084f4pejbf91o0xl7kzj-71lm15lbwjxr95coahk0b19hj 192.168.0.238:2377
# 在 node1 上查看加入集群的机器
docker node ls
# 创建网络,类型是swarm overlay 网络
docker network create --driver=overlay --attachable backend
使用 docker stack
# 部署服务
docker stack deploy klvchen -c docker-compose.yml
#列出所有stack
docker stack ls
#查看服务列表
docker stack services klvchen
#查看任务列表
docker stack ps klvchen
#删除 stack
docker stack rm klvchen
如果 docker-compose.yml 中有引用变量,例如:.env
cat .env
MYSQL_URL=192.168.0.214:3306
MYSQL_USERNAME=klvchen
MYSQL_PASSWORD=klvchen
BOSS_PROD_DB=prod
IMAGE_NAME=klvchen:2018-07-25_17-33
#需要在部署前手动 export 到环境变量中
export $(cat .env) && docker stack deploy klvchen -c docker-compose.yml