作用:搭建集群,集群的管理者 (每个服务器为一个docker,搭建多服务器集群,即管理多个docker,形成docker网络)

9.1 集群搭建命令

9.1.1 初始化节点

  1. docker swarm init

image.png
Tip:后面的ip地址用当前初始化的服务器的ip

9.1.2 获取当前节点的token令牌

  1. # 获取令牌
  2. docker swarm join-token manager
  3. docker swarm join-token worker

9.1.3 当前节点加入集群

  1. docker swarm join --token xxxxx

image.png

9.1.4 查看集群中的节点信息

  1. # 只有在manage中可以查看
  2. docker node ls

image.png

9.2 Raft协议

Raft协议: 保证大多数节点存活才可以用。 只要>1 ,集群至少大于3台!

十分简单:集群,可用! 3个主节点。 > 1 台管理节点存活

9.3 命令

以后告别 docker run!

  1. 单机:docker-compose up
  2. 集群:docker serivce

image.png

9.3.1 创建容器

  1. # 集群方式创建容器(集群中任意一台机器起该容器)
  2. docker service create -p 外界端口:内部端口 --name 自定义名 nginx

9.3.2 动态扩缩容

  • 写法1:

    1. docker service update --replicas 数量 容器名称
  • 写法2:

    1. docker service scale 容器名=数量

    9.3.3 查看服务

  • 查看集群中所有的服务

    1. docker service ls
  • 查看集群中某个正在运行的服务

    1. docker service ps 服务名

9.4 概念总结

swarm
集群的管理和编号。 docker可以初始化一个 swarm 集群,其他节点可以加入。(管理、工作者)

Node
就是一个docker节点。多个节点就组成了一个网络集群。(管理、工作者)

Service
任务,可以在管理节点或者工作节点来运行。核心。!用户访问!

Task
容器内的命令,细节任务!
image.png

  • 服务副本与全局服务

image.png