首页/新闻资讯/正文详情

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

发布时间:2026/9/25 5:27:22 来源:云帆数科 栏目:资讯中心
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),仅供参考

相关推荐

Docker Labs项目:Windows容器中的多容器应用部署实践
Docker Labs项目:Windows容器中的多容器应用部署实践

Docker Labs项目:Windows容器中的多容器应用部署实践 前言 在现代应用开发中,容器化技术已经成为不可或缺的一部分。Docker作为容器技术的代表,不仅支持Linux环境,也提供了完整的Windows容器支持。本文将基于Docker Labs项目中的W… · 2026/9/25 5:27:22

Ariakit Menu 组件实战指南:从 WAI-ARIA 菜单模式到可访问下拉菜单的实现
Ariakit Menu 组件实战指南:从 WAI-ARIA 菜单模式到可访问下拉菜单的实现

UI组件前端 【免费下载链接】ariakit Toolkit with accessible components, styles, and examples for your next web app 项目地址: https://gitcode.com/gh_mirrors/ar/ariakit 点击查看 免费下载 Ariakit 的 Menu 是一套完整实现 WAI-ARIA Menu Pattern 与 Menu… · 2026/9/25 5:27:16

Humanizer On.February 流式日期 API 详解:用自然语言构造 2 月日期
Humanizer On.February 流式日期 API 详解:用自然语言构造 2 月日期

开发工具 【免费下载链接】Humanizer Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities 项目地址: https://gitcode.com/gh_mirrors/hu/Humanizer 点击查看 免费下载 Human… · 2026/9/25 5:27:04

RT-Thread RA-Eco-RA4E2-64PIN 开发板 BSP 实战:从硬件资源到 MDK5 编译烧录与源码剖析
RT-Thread RA-Eco-RA4E2-64PIN 开发板 BSP 实战:从硬件资源到 MDK5 编译烧录与源码剖析

操作系统嵌入式物联网嵌入式OSRTOS 【免费下载链接】rt-thread RT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/ 项目地址: https://gitcode.com/gh_mirrors/rt/rt-thread 点击查看 免费下载 本文基于… · 2026/9/25 5:55:39

OpenChamber 1.8.3 深度解析:重构上下文面板与嵌入会话聊天、用户消息渲染控制与模型选择器体验升级
OpenChamber 1.8.3 深度解析:重构上下文面板与嵌入会话聊天、用户消息渲染控制与模型选择器体验升级

AI Agent人工智能代码智能体交互助手 【免费下载链接】openchamber Agentic Development Environment based on OpenCode AI agent 项目地址: https://gitcode.com/gh_mirrors/op/openchamber 点击查看 免费下载 OpenChamber 1.8.3(发布日期 2026-03-02… · 2026/9/25 5:55:39

QualityInspector 工业质检数据集准备实战:以磁砖缺陷数据为例的三种任务格式转换全指南
QualityInspector 工业质检数据集准备实战:以磁砖缺陷数据为例的三种任务格式转换全指南

人工智能计算机视觉预训练 【免费下载链接】PaddleSeg Easy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image Matting,… · 2026/9/25 5:55:39

NLP学术速递工作流:精准筛选与可操作知识提取
NLP学术速递工作流:精准筛选与可操作知识提取

1. 这不是“新闻简报”,而是一份NLP研究者的日常补给清单你有没有过这种体验:早上打开arXiv,看到27篇新上传的NLP论文标题,扫了一眼“LLM-based Reasoning over Knowledge Graphs with Adaptive Prompting”,心里一紧—… · 2026/9/25 5:55:39

细胞膜蛋白提取技术:关键步骤与质量控制
细胞膜蛋白提取技术:关键步骤与质量控制

1. 细胞膜蛋白提取的核心价值与挑战细胞膜蛋白作为药物靶点筛选的重要研究对象,其提取质量直接影响后续实验结果的可靠性。在药物研发领域,约60%的已知药物靶点都是膜蛋白,但这类蛋白的提取却面临着独特的技术难题。膜蛋白具有两亲性结构&… · 2026/9/25 5:55:33

JmatPro 14.1全模块加密狗部署指南:驱动安装与授权排查
JmatPro 14.1全模块加密狗部署指南:驱动安装与授权排查

搞材料计算的人对JmatPro 14.1这名字不会陌生,我最近又帮两个课题组把全模块版本的授权环境从头理了一遍,折腾的核心就是那把加密狗。很多人以为全模块版本就是把菜单里所有模块全部点亮,事实没那么简单:真正容易被卡住的&#xf… · 2026/9/25 5:55:33

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码