一 Docker Swarm简介
Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 Docker 的一个子命令。
Swarm 是 Docker 社区提供的唯一一个原生支持 Docker 集群管理的工具。
Swarm可以把多个 Docker 主机组成的系统转换为单一的虚拟 Docker 主机,使得容器可以组成跨主机的子网网络。
Docker Swarm 是一个为 IT 运维团队提供集群和调度能力的编排工具
Docker Swarm 优点
任何规模都有高性能表现
灵活的容器调度
服务的持续可用性
和 Docker API 及整合支持的兼容性
Docker Swarm 为 Docker 化应用的核心功能(诸如多主机网络和存储卷管理)提供原生支持。
docker swarm 相关概念
节点分为管理 (manager) 节点和工作 (worker) 节点
任务 (Task)是 Swarm 中的最小的调度单位,目前来说就是一个单一的容器。
服务 (Services) 是指一组任务的集合,服务定义了任务的属性。
二 Docker Swarm实践
1 创建 Swarm 集群
初始化集群: docker swarm init
[root@server1 ~]# docker swarm init
根据提示在其他docker节点上执行命令:
[root@server2 ~]# docker swarm join --token SWMTKN-1-5ipfg3qp4zqy5stlm19lq5w5xi8g9rwaqzcq31uc7gu8e5udjy-ekevu055fxp4kf700sjscaem4 172.25.7.1:2377
This node joined a swarm as a worker.
[root@server3 ~]# docker swarm join --token SWMTKN-1-5ipfg3qp4zqy5stlm19lq5w5xi8g9rwaqzcq31uc7gu8e5udjy-ekevu055fxp4kf700sjscaem4 172.25.7.1:2377
This node joined a swarm as a worker.
[root@server4 ~]# docker swarm join --token SWMTKN-1-5ipfg3qp4zqy5stlm19lq5w5xi8g9rwaqzcq31uc7gu8e5udjy-ekevu055fxp4kf700sjscaem4 172.25.7.2:2377
This node joined a swarm as a worker.
把server2升为manager,把server1降级
[root@server1 ~]# docker node promote server2
Node server2 promoted to a manager in the swarm.
[root@server1 ~]# docker node demote server1
Manager server1 demoted in the swarm.
把配置文件docker.conf传到其他节点
[root@server1 sysctl.d]# scp docker.conf server2:/etc/sysctl.d/
docker.conf 100% 80 114.6KB/s 00:00
[root@server1 sysctl.d]# scp docker.conf server3:/etc/sysctl.d/
docker.conf 100% 80 114.2KB/s 00:00
[root@server1 sysctl.d]# scp docker.conf server4:/etc/sysctl.d/
The authenticity of host 'server4 (172.25.7.4)' can't be established.
ECDSA key fingerprint is SHA256:W+53+laKT65G9xA9YPq/6F3WxJ9khpZTk5RKUjU9f04.
ECDSA key fingerprint is MD5:51:7b:a6:bf:ca:d0:6b:b8:76:69:5f:0d:90:5d:e0:92.
Are you sure you want to