如何配置全局模式 Global 确保每台宿主机部署一个容器实例

云涛小哥_2904

云涛小哥_2904

2026-07-15

860人浏览

原创

全局模式指服务在每台符合条件的swarm节点上运行且仅运行一个副本;需先初始化集群并确保节点ready,再用--mode global创建服务,支持约束调度与自动扩缩,docker compose单机模式不支持该语义。

在 docker swarm 模式下,“全局模式”(global mode)是指让服务在集群中**每台符合条件的节点上都运行且仅运行一个副本容器**。它不适用于普通 docker engine 或 docker compose(v2 默认不支持全局部署语义),必须在启用 swarm 的集群环境中配置。

前提:初始化或加入 Swarm 集群

确保所有目标宿主机已初始化为 Swarm 节点:

  • 在管理节点执行:docker swarm init(获取 join token)
  • 其他节点执行:docker swarm join --token :2377
  • 确认节点状态:docker node ls,应看到 Ready 状态的 worker 或 manager 节点

使用 docker service create 启动全局服务

通过 --mode global 参数声明服务为全局部署:

Kubernetes Network Policy Generator
Kubernetes Network Policy Generator

使用加权评分卡在12项标准上评估和比较隐私解决方案供应商。适用于选择隐私管理软件、比较数据保护方案等场景。

下载
  • 基础命令示例:docker service create --name log-collector --mode global alpine tail -f /dev/null
  • 该命令会在当前集群中每个 Ready 的 worker 节点上启动一个容器
  • 若只想在特定角色节点部署(如仅 worker),可加约束:--constraint 'node.role==worker'
  • 若需排除某些节点(如管理节点不跑业务容器),可用:--constraint 'node.labels.type!=control'(需提前打 label)

验证与管理

检查是否每台宿主机都运行了一个实例:

  • docker service ps log-collector —— 查看各副本分配到哪个节点
  • docker ps(在任一宿主机上执行)—— 应仅看到一个该服务的容器(除非手动额外启动)
  • 节点增减后,Swarm 会自动扩缩:新节点加入 Ready 状态后,服务立即调度一个新副本;节点下线后,副本自动迁移

注意:Docker Compose 不原生支持全局模式

标准 docker compose up 是单机编排工具,无法跨主机调度。若坚持用 Compose 语法实现类似效果,需借助:

  • Swarm 模式下的 docker stack deploy(支持 deploy.mode: global)
  • 示例 docker-compose.yml 片段:
    version: '3.8'
    services:
      agent:
        image: prom/node-exporter
        deploy:
          mode: global
          placement:
            constraints:
              - node.role == worker
    
    然后运行:docker stack deploy -c docker-compose.yml mymonitor

相关专题

更多
LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

80

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

80

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

40

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

40

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

60

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

280

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

160

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

120

15

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

2026.09.22

80

12

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Docker 官方文档
Docker 官方文档

共0课时 | 0人学习

Kubernetes官方教程手册
Kubernetes官方教程手册

共0课时 | 0人学习

Kubernetes官方中文文档
Kubernetes官方中文文档

共0课时 | 0人学习