如何使用Docker内置集群模式搭建高可用的容器调度平台

夜伟吖_6917

夜伟吖_6917

2026-05-06

966人浏览

原创

使用 Docker 内置 Swarm 模式搭建高可用容器调度平台的核心是构建多 Manager 节点的容错集群,依托 Raft 协议实现状态同步,3 个 Manager 可容忍 1 台宕机;需准备至少 3 台服务器(推荐 3 Manager + 2 Worker),安装 Docker Engine 20.10+,配置主机名解析、开放 2377/7946/4789 端口,并通过 docker swarm init 和 docker swarm join --token(区分 Manager/Worker token)完成集群初始化与节点加入,最后用 docker stack deploy 部署带滚动更新的多副本服务。

如何使用docker内置集群模式搭建高可用的容器调度平台

用 Docker 内置 Swarm 模式搭高可用容器调度平台,核心是构建多 Manager 节点的容错集群,而非单点管理。它不依赖 Kubernetes 等外部工具,靠 Raft 协议同步状态,3 个 Manager 就能容忍 1 台宕机,适合中小规模生产环境。

准备节点与网络

至少准备 3 台服务器(推荐 3 Manager + 2 Worker),全部安装 Docker Engine(20.10+)。确保:

  • 各节点时间同步(如用 chrony)
  • /etc/hosts 或 DNS 配置正确,主机名可互相解析
  • 开放必要端口:2377/tcp(集群管理)、7946/tcp+udp(节点通信)、4789/udp(overlay 网络)
  • 每台机器设置唯一主机名,例如:hostnamectl set-hostname manager1

初始化高可用 Manager 集群

在首台机器(如 manager1)执行初始化,并明确指定本机 IP:

docker swarm init --advertise-addr 192.168.1.10 --listen-addr 192.168.1.10:2377

命令成功后,会输出两行 join 命令——一行用于添加 Worker,另一行专用于添加额外 Manager。务必分别保存。

在 manager2 和 manager3 上,使用 Manager 专属 token 加入(不是 Worker 的):

docker swarm join --token SWMTKN-1-xxx-manager-token 192.168.1.10:2377

加入时需加 --advertise-addr 参数指定本机 IP(如 --advertise-addr 192.168.1.11),否则其他节点无法反向连接。

在任一 Manager 上运行 docker node ls,确认所有 Manager 显示 Leader 或 Reachable,状态为 Ready 且 Active。

docker-container-rerun-all
docker-container-rerun-all

顺序检查并可选更新所有已在长期记忆中记录了固定重建命令的 docker run 容器。使用场景:用户...

下载

添加并验证 Worker 节点

在 worker1、worker2 等机器上,执行初始化时输出的 Worker token 命令:

docker swarm join --token SWMTKN-1-xxx-worker-token 192.168.1.10:2377

无需指定 --advertise-addr(默认自动探测),但确保其网络可达。加入后,docker node ls 中对应节点角色应为 Worker,状态为 Ready。

可临时下线一个 Worker 测试容错性:docker node update --availability drain worker1,观察服务是否自动迁移至其余 Worker。

部署带滚动更新的多服务应用

编写 docker-compose.yml(v3.8 格式),定义 web、db、cache 等服务,并启用高可用配置:

version: '3.8'
services:
  web:
    image: nginx:alpine
    deploy:
      replicas: 3
      restart_policy:
        condition: on-failure
      update_config:
        parallelism: 1
        delay: 10s
        failure_action: rollback
    ports:
      - "80:80"

在 Manager 节点执行:

docker stack deploy -c docker-compose.yml myapp

Swarm 自动创建网络、分配任务、启用 Ingress 路由网格——任意节点 IP:80 均可访问负载均衡后的 web 服务。后续修改配置只需重新运行该命令,Swarm 按设定策略滚动更新。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

docker

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

2023.07.24

765

4

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

5919

6

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

6997

6

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

2733

7

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

2026.02.11

299

16

Docker 容器部署
Docker 容器部署

本专题整合了Docker容器部署相关内容,阅读专题下面的文章了解更多详细操作教程。

2026.03.31

471

14

Java容器化部署与Docker实践教程合集
Java容器化部署与Docker实践教程合集

聚焦 Java 应用的容器化与云原生部署,讲解 Dockerfile 编写规范与 Java 应用镜像构建、多阶段构建(Multi-stage Build)减小镜像体积、Jib / Buildpacks 免 Dockerfile 镜像构建方案、JVM 容器感知参数(-XX:MaxRAMPercentage)配置、Docker Compose 编排多服务(应用 + MySQL + Redis)、容器健康检查与资源限制、Kubernetes

2026.05.11

440

26

Go Docker与容器化部署教程合集
Go Docker与容器化部署教程合集

聚焦 Go 应用的容器化部署优势与实践,讲解 Go 静态编译特性(CGO_ENABLED=0)与 scratch / distroless 极小基础镜像构建、多阶段 Dockerfile 编写规范、交叉编译生成目标平台二进制、镜像安全扫描(Trivy)与漏洞修复、Docker Compose 本地编排开发环境、Kubernetes Deployment / Service / ConfigMap 部署 Go 服务、健康检查(Livene

2026.05.15

325

24

Hyperf 项目部署运维与性能调优手册
Hyperf 项目部署运维与性能调优手册

聚焦 Hyperf 在生产环境的落地,包含 Docker 高效打包、Swoole 配置优化、常见的内存溢出(OOM)问题排查方法以及热更新方案。

2026.05.19

485

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Docker 官方文档
Docker 官方文档

共0课时 | 0人学习

宝塔 Docker 模块使用手册
宝塔 Docker 模块使用手册

共0课时 | 0人学习