当前位置: 首页 > news >正文

Docker Swarm 和 Docker Compose 集群部署区别是什么

简单说,单机开发测试用 Docker Compose,多主机生产集群用 Docker Swarm。

先说结论:两者定位不同,Compose 是单机多容器编排,Swarm 是原生集群管理工具。

  • 适合:本地开发、测试环境或单主机部署场景优先选 Compose。
  • 重点看:是否需要跨节点调度、高可用和负载均衡,有则选 Swarm。
  • 别忽略:Swarm 的 stack 部署不支持 build 指令,镜像需预先构建好。

命令速用版

Compose 启动:

docker-compose up -d

Swarm 初始化与部署:

docker swarm init
docker stack deploy -c docker-stack.yml myapp

为什么会这样

Docker Compose 设计初衷是定义和运行多容器应用,所有容器运行在同一 Docker 引擎实例上,适合确保应用各部分协同工作。而 Docker Swarm 是 Docker 内置的集群管理工具,它将多个 Docker 主机组成一个虚拟主机,支持跨节点容器调度、服务发现和负载均衡。

从架构上看,Swarm 包含 Manager 和 Worker 节点,Manager 负责调度,Worker 执行任务,即使 Manager 故障,Worker 上的容器仍能运行。Compose 则不涉及集群管理,没有内置的故障恢复机制。

分步处理

1. 评估场景

如果只是在本地或单台服务器上跑几个容器互调,直接用 Compose。如果需要把服务分散到多台机器,且要求某台机器宕机后服务自动迁移,才考虑 Swarm。

2. 配置文件调整

Compose 使用docker-compose.yml,Swarm 部署通常使用docker-stack.yml。注意 Swarm 模式要求配置文件版本至少为 3,且支持deploy字段来设置副本数(replicas)。

3. 镜像准备

Compose 支持在配置文件中写build指令现场构建镜像。Swarm 的 stack 部署会忽略build指令,必须确保镜像已经构建好并推送到仓库,或者在节点上本地存在。

怎么验证是否生效

Compose 验证:运行docker ps能看到所有服务容器在同一主机上启动。

Swarm 验证:运行docker node ls能看到集群中的多个节点状态为 Ready。运行docker service ls能看到服务的副本分布情况。

常见坑

1. 版本兼容性:docker stack 不支持基于第 2 版写的 compose 文件,版本需为 3 及以上。

2. 构建指令失效:在 Swarm 模式下使用 stack deploy 时,配置文件中的 build 指令会被忽略,导致部署失败。

3. 网络模式:Swarm 默认使用 vip 模式为服务分配虚拟 IP,跨主机通信需要配置覆盖网络(overlay network)。

参考来源

  • 阿里云开发者社区:Docker Swarm 和 Docker Compose 集群模式怎么选?
  • 阿里云开发者社区:Docker Compose 从入门配置到多容器部署实战
  • 阿里云开发者社区:Docker 三大编排工具 Compose Swarm Kubernetes 对比与选择
  • 阿里云开发者社区:Docker Stack 部署应用及搭建 Docker 私有仓库

原文链接:https://www.zjcp.cc/ask/10087.html

http://www.jsqmd.com/news/767244/

相关文章:

  • 高防 CDN vs 普通 CDN:从防护能力到访问速度,差距不止一点点
  • AI赋能开发:从工具链到智能工作流的演进与实践
  • 【干货】PoE电源变压器选型指南:从10W到30W,VOOHU沃虎电子教你如何匹配PoE供电方案
  • 从玩具机器人模拟器看生产级React项目架构与工程化实践
  • Java新手福音:用快马平台生成可运行示例,轻松理解基础语法与项目结构
  • 多模态提示学习在视频理解任务中的应用,多模态提示学习:让视频理解从“看得见”真正走向“看得懂”
  • 4G无线485/232对传模块:工控专用传输,免费送8年流量
  • SpringBoot实战:快速构建高效企业级应用
  • Crabwise:本地AI代理监控与安全策略实践指南
  • 2026届必备的AI学术平台横评
  • 【独家逆向分析】VSCode 2026医疗合规模块底层架构曝光:基于AST+医疗知识图谱双引擎,支持动态加载NMPA最新补丁规则(内附未公开CLI诊断命令)
  • 2026年高温线厂家推荐指南,编织高温线/工业高温线/铁氟龙高温线/多芯高温线缆/耐火线缆高温线 - 品牌策略师
  • 嵌入式系统软件可靠性工程实践与优化
  • 打工人必备:Gemini3.1Pro高效处理PDF转Word+总结
  • Anthropic冲击9000亿美元估值,融资节奏压缩,能否抗衡OpenAI?
  • openharmony源码编译之 修改分区大小指南
  • 拒绝数据“裸奔”!把顶级AI装进自己的硬盘,这款神仙开源工具我粉了
  • 国产旗舰AI“西方垃圾思维中毒”反超欧美原生模型:TOP30榜单揭示认知殖民化困境
  • 开源项目国际化文档协作:从工具链到社区运营的完整实践指南
  • 3步完成QQ空间说说完整备份:GetQzonehistory终极指南
  • Arm Cortex-A65缓存调试与ECC错误处理机制解析
  • 想在武汉找广联达培训学校?哪个值得你选择?
  • ComfyUI-Impact-Pack V8:如何用模块化架构彻底解决AI图像增强三大性能痛点
  • 破浪“IVD”:迈瑞医疗一季报归母净利环比暴增311%迎来复苏周期
  • 告别假阳性!用Cuckoo Filter(布谷鸟过滤器)优化你的LSM-Tree存储引擎
  • 告别系统软键盘!手把手教你为Qt应用定制一个高颜值、全功能的虚拟键盘(支持Win/Linux)
  • ZLUDA兼容性评估指南:在AMD GPU上运行CUDA应用的5大决策要点
  • VSCode 2026日志插件开发全链路:从零构建可扩展、低延迟、支持TB级日志流的插件架构
  • 企微AI原生接口深度适配:侧边栏实时陪聊性能优化与高可用方案
  • 告别时间漂移:手把手教你用RX8111CE RTC芯片实现高精度时间戳(附I2C驱动避坑指南)