官方文档: https://docs.docker.com/engine/swarm/swarm-tutorial/
docker swarm --help # 查看私网IP地址 ip addr docker swarm init --advertise-addr 192.168.98.224 To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-2izj4yg08taobo19tjb9ci3r0w3lwkxxq8gvwx0d71zi71gize-8c4desxvd2mxt14zwv5sjneel 192.168.98.224:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
# 初始化主节点 后面可以加入主节点或者工作节点 docker swarm init # 加入一个节点 docker swarm join # 创建manager节点命令 docker swarm join-token manager # 创建worker节点命令 docker swarm join-token worker # 查看节点 只有manager节点可以使用该命令 docker node ls # 离开集群 docker swarm leave
保证大多数节点存活才可以使用
docker run : 容器启动 不具备扩缩容
docker-compose up : 启动一个项目、单机
dockck swarm : 集群, docker service .分布在不同主机上
# 启动服务 docker service create -p 8888:80 --name swarm-nginx nginx # 查看服务 docker service ps swarm-nginx docker service ls docker service inspect swarm-nginx # 扩容 docker service update --replicas 3 swarm-nginx # 或者使用 scale 扩容 docker servcie scale swarm-nginx=3 # 移除服务 docker service rm swarm-nginx
集群中任意的节点都可以访问,服务可以有多个副本动态扩缩容实现高可用
Swarm
集群的管理和编号;docker可以初始化一个swarm集群,其他节点可以加入(管理者、工作者)
Node
就是一个Dokcer节点,多个节点组成一个网络集群。
Service
任务,可以在管理节点或者工作节点运行。提供用户访问
Task
容器内的命令 细节任务
Docker Swarm
Service
docker service create流程
服务副本与全局服务
调整Service以什么方式运行
# 默认在工作节点创建服务 docker service create --mode replicated --name mytomcat tomcat:7 docker service create --mode global --name mytomcat tomcat:7 # 场景:日志收集、服务监控、状态性能 每一个节点都有自己的日志收集器,过滤日志后把所有日志最终传给日志中心
网络模式: PublishMode: ingress
模式 | |
---|---|
Overlay | 跨机器互通 网络变成一个整体 |
ingress | 特殊的Overlay网络 具有负载均衡功能 |
docker network inspect ingress
# 单机 docker-compose up -d wordpress.yml # 集群 docker stack deploy wordpress.yml
配置密码、证书