安裝 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
