节点, 服务, 任务
节点就是一个部署了 Docker 的主机(分为 Manager 和 Worker).
任务就是一个容器功能, 服务就是多个任务功能(容器)组合起来可以对外提供工作的整体. nginx(任务) + php(任务) + mysql(任务) ==> 服务
创建 Machine 机器
1 | NAME=$1 |
根据脚本, 创建 manager, worker1, worker2, worker3 4台机器
查看机器状态 docker-machine ls
登录 master 机器 docker-machine ssh master
登录 worker 机器 docker-machine ssh workerX
创建 Swarm 集群
Manager
在 manager 机器上初始化 swarm manager
1 | docker swarm init --help |
执行结束后, 会输出加入当前 swarm 集群的方式: docker swarm join --token SWMTKN-1-1n1lffbs5h094l6rtzosb7xoecpx998e4udfb0kr5tprxqvyhj-4rjc2wkg7h2ndlu8l0gj25q5m 10.0.201.70:2377
Worker
在 worker 机器上初始化 swarm worker
1 | docker swarm join --help |
集群查看管理
通过 docker machine 管理主机
1 | # 主机列表 |
通过 swarm manager 管理集群
1 | # 节点列表 |
服务管理
部署服务
1 | docker service create \ |
查看服务日志 docker service logs SERVICENAME
查看服务列表 docker service ps SERVICENAME
删除服务 docker service rm SERVICENAME
使用 docker-compose.yml 管理服务
1 | deploy: |
以上调度策略, 控制哪些服务是部署在 manager 节点的, 哪些是可扩展部署.
参考文档: https://docs.docker.com/swarm/scheduler/filter/
部署服务
1 | docker stack deploy \ |
查看服务 docker stack ls
删除服务 docker stack down STACKNAME