Docker 是当前最流行的容器化技术之一,可以帮助开发者更方便地构建、拓展和部署应用程序。这里将讲解 Docker Swarm 的使用指南,包括如何创建集群、部署应用、管理服务等。
什么是 Docker Swarm
Docker Swarm 是 Docker 官方提供的容器编排工具,可以将多台 Docker 主机组成一个虚拟化的 Docker 集群。集群内的 Docker 主机可以共同管理应用程序的生命周期,通过动态容器编排和负载均衡等方式提供高可用性、弹性和伸缩性。
Swarm 采用经典的 “集群的主从模式” 架构。其中,管理节点称为 Swarm Manager,负责配置和管理整个集群,包括部署服务、移除服务、扩展服务、更新服务等操作;而工作节点称为 Swarm Worker,负责运行被部署的容器。
如何创建 Docker Swarm 集群
在创建 Docker Swarm 集群之前,首先需要在每台主机上安装 Docker。具体安装步骤可以参照官方文档:Get Docker
对于 Swarm 集群搭建,一般有两种方式:
利用 Docker Machine 进行快速搭建
Docker Machine 是一个用于安装和管理 Docker 环境的命令行工具。可以利用 Docker Machine 快速创建多个 Swarm 节点,同步运行 Docker Engine,并保证 Docker Engine 版本一致性,同时支持 AWS、Azure、VirtualBox 等多种云服务。
创建 Swarm 集群步骤:
安装 Docker Machine [1]
利用 Docker Machine 创建多个主机节点,并自动安装 Docker Engine 和 Swarm 模式
$ docker-machine create --driver virtualbox node1 $ docker-machine create --driver virtualbox node2 $ docker-machine create --driver virtualbox node3
初始化 Swarm 集群,其中 node1 为 Swarm Manager 节点
$ docker-machine ssh node1 "docker swarm init --advertise-addr <host>"
执行该命令后,Swarm Manager 节点将显示一个 token 和地址,用于添加 Swarm Worker 节点至集群
$ docker swarm join-token worker
在 Swarm Worker 节点上执行该命令,将它们加入 Swarm 集群:
$ docker-machine ssh node2 "docker swarm join \ --token <token> \ <ip>:<port>"
开启 Docker Swarm 集群串联模式,确保在所有 Docker 服务共享相同的网络模型。其允许联合多个主机,以充分利用各自的资源,并协会为单一集成的 Docker 主机提供服务。
$ eval $(docker-machine env node1)
利用 Swarm Stacks 进行手动搭建
“Docker Stack” 是一个用于指定 Swarm 应用程序的文件,在 Swarm 集群中创建、更新和管理分布式应用程序的容器和服务。利用 Swarm Stacks 手动搭建 Swarm 集群步骤如下:
配置 Docker 环境,安装 Docker
初始化 Swarm 集群,其实 consul 其实是一个 key-value 属性存储的数据库系统,使用它存储 Swarm 主要配置信息,需要安装启动 consul
$ docker swarm init --advertise-addr <host>
创建文件,编写基本的 Swarm Stack 配置信息:docker-compose.yaml
-- -------------------- ---- ------- -------- --- --------- ---- ------ ------------ ------- --------- - --------------- ---------- --- ---------- ------- ----- ----- ------- --- ------- ---------- ------- ----- ----- ------- --- ------ - --------- --------- - ------
部署服务
$ docker stack deploy --compose-file docker-compose.yml <stack_name>
如何管理 Docker Swarm 集群
Docker Swarm 能够支持从运行单一服务到复杂应用程序的繁杂任务。集群管理任务包括服务与任务创建、伸缩与移除、登陆容器、查询集群资源状态以及配置管理等等。
下面是基本日常管理指南:
登录 Docker Swarm Manager 节点
$ docker-machine ssh node1
创建服务
$ docker service create <service_name>
查询服务状态
$ docker service ls
测量服务
$ docker service ps <service_id>
编辑应用程序
$ docker service update <options> <service_name>
- 扩展应用程序
$ docker service scale <service_name>=<replicas>
遵循这些指南,您可以快速轻松地创建、部署和管理一个 Docker Swarm 集群,并促进您的应用程序以渐进的方式扩展和生长。在注意安全的基础上,良好地管理集群系统,提高集群系统的稳定性。
总结
本文中,我们介绍了 Docker Swarm 的基础知识,以及如何创建、管理 Swarm 应用程序。这些技术在自动化部署、容器编排和大规模应用程序管理中具有广泛的应用潜力。
利用 Docker Swarm,您可以更加自然、灵活地协调和维护容器的大规模集成环境。我们基于 Docker 平台和系统的技术方法,可以推进您的系统和选择贡献的技能和经验。
参考资料:
[1] Docker Machine 安装 [2] Docker-Compose [3] Docker Stack
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e595f0f6b2d6eab3106d79