ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

7步掌握Docker Swarm模式:从搭建到实战的完整指南

7步掌握Docker Swarm模式:从搭建到实战的完整指南 7步掌握Docker Swarm模式从搭建到实战的完整指南Docker Swarm模式是Docker原生的容器编排工具让你轻松管理多主机Docker集群。本教程将通过简单易懂的步骤带您从零开始搭建Swarm集群部署服务并掌握弹性伸缩、故障转移等核心功能即使是Docker新手也能快速上手。一、Docker Swarm模式简介Docker Swarm是Docker Engine内置的集群管理和编排工具无需额外安装。它将多个Docker主机组成一个虚拟的 swarm 集群实现服务的高可用部署、自动负载均衡和故障恢复。Swarm核心优势简单易用使用Docker CLI原生命令操作无需学习新工具高可用性自动检测并替换故障节点确保服务持续运行弹性伸缩一键扩展或缩减服务实例数量负载均衡内置路由网格(Routing Mesh)自动分发流量滚动更新零停机部署新版本服务Docker Swarm覆盖网络架构示意图展示了容器如何通过overlay网络跨主机通信二、准备工作环境要求开始前请确保您的系统满足以下条件安装Docker Engine推荐17.03版本每台主机至少2GB内存和2核CPU主机间网络互通开放2377/tcp、7946/tcp/udp、4789/udp端口推荐使用Linux系统Ubuntu 16.04或CentOS 7提示如果使用Docker for Mac或Docker for Windows已内置Docker Machine可直接创建本地集群。Linux用户需额外安装Docker Machine。三、搭建Swarm集群3种方式方法1使用脚本快速创建推荐新手项目提供了便捷的脚本自动创建Swarm集群# 克隆项目仓库 git clone https://gitcode.com/gh_mirrors/la/labs # 进入Swarm教程目录 cd la/labs/swarm-mode/beginner-tutorial # 运行创建脚本VirtualBox版本 ./swarm-node-vbox-setup.sh脚本会自动创建3个管理节点(manager)和3个工作节点(worker)并初始化Swarm集群。方法2手动创建集群如果需要自定义集群规模可手动执行以下步骤初始化Swarm管理节点# 在主管理节点执行 docker swarm init --advertise-addr MANAGER_IP添加其他管理节点# 在其他管理节点执行替换TOKEN和MANAGER_IP docker swarm join --token MANAGER_TOKEN MANAGER_IP:2377添加工作节点# 在工作节点执行替换TOKEN和MANAGER_IP docker swarm join --token WORKER_TOKEN MANAGER_IP:2377方法3使用Play with Docker在线实验如果不想在本地安装可使用Play with Docker在线环境直接在浏览器中创建Swarm集群。四、Swarm集群基本操作查看集群节点状态# 在管理节点执行 docker node ls成功创建后会显示类似以下结果ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 64swze471iu5silg83ls0bdip * manager1 Ready Active Leader 7eljvvg0icxlw20od5f51oq8t manager2 Ready Active Reachable 3cq6idpysa53n6a21nqe0924h manager3 Ready Active Reachable 8awcmkj3sd9nv1pi77i6mdb1i worker1 Ready Active avu80ol573rzepx8ov80ygzxz worker2 Ready Active bxn1iivy8w7faeugpep76w50j worker3 Ready Active部署第一个服务部署一个Nginx服务到Swarm集群# 创建名为web的服务映射80端口 docker service create -p 80:80 --name web nginx:latest # 查看服务状态 docker service ls此时访问任意节点的IP地址都能看到Nginx欢迎页面通过Swarm路由网格访问任意节点IP都能访问到Nginx服务五、核心功能实战1. 服务伸缩一键扩展服务实例数量# 将web服务扩展到15个实例 docker service scale web15 # 查看服务分布情况 docker service ps webSwarm会自动将实例均匀分布到各个节点实现负载均衡。2. 服务更新与回滚# 更新服务镜像版本 docker service update --image nginx:alpine web # 如果出现问题回滚到上一版本 docker service rollback web3. 节点维护当需要维护某个节点时可将其设置为drain状态Swarm会自动将服务迁移到其他节点# 将worker1节点设为维护模式 docker node update --availability drain worker1 # 维护完成后恢复 docker node update --availability active worker14. 网络通信原理Swarm使用overlay网络实现跨主机容器通信通过VXLAN技术封装数据包Swarm overlay网络中数据包的封装与传输过程六、清理与卸载实验完成后可使用项目提供的脚本清理环境# 进入Swarm教程目录 cd la/labs/swarm-mode/beginner-tutorial # 运行清理脚本 ./swarm-node-vbox-teardown.sh七、进阶学习资源官方文档Docker Swarm模式官方指南项目示例Docker Swarm部署投票应用网络深入Docker Overlay网络详解实战案例Node.js应用Swarm部署通过本教程您已掌握Docker Swarm的基本使用方法。Swarm模式特别适合中小型应用的容器编排具有部署简单、学习成本低的优势。随着需求增长您可以平滑过渡到更复杂的编排平台。现在就动手尝试部署您的第一个Swarm集群吧 创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表