OpenIM 离线部署完整指南:内网环境镜像准备、传输与 Docker Compose 落地
OpenIM 离线部署完整指南内网环境镜像准备、传输与 Docker Compose 落地【免费下载链接】open-im-serverIM Chat OpenClaw项目地址: https://gitcode.com/gh_mirrors/op/open-im-server本指南以 OpenIMopen-im-server官方离线部署设计文档docs/contrib/offline-deployment.md为核心骨架完整讲解在无外网/受限网络中部署 OpenIM 的全过程从基础依赖镜像与 OpenIM 业务镜像的选型、拉取、导出到代码获取、scp传输、镜像导入最后通过 Docker Compose 一键启动整套 IM 服务。读完本文你将掌握一套可复制的离线部署 SOP并理解 OpenIM 的镜像版本管理、仓库源选择与组件版本兼容策略。1. 离线部署总体思路OpenIM 是一套由多个微服务构成的即时通讯服务器官方推荐通过 Docker 镜像完成部署。离线部署的核心思想只有一句话在有外网的机器上把所需镜像全部拉取并导出为 tar 包连同部署代码一起拷入内网再在内网机器上导入镜像并启动容器。整个流程可分为四个阶段镜像准备按需拉取基础组件镜像Kafka、Redis、MongoDB、ZooKeeper、MinIO 等与 OpenIM 业务镜像server、chat、web、admin可选拉取监控组件镜像导出与传输将镜像docker save为 tar 文件把部署仓库代码一并通过scp、U 盘、移动硬盘等方式送入内网导入在内网服务器上docker load导入所有镜像部署使用 openim-docker 仓库的make init初始化配置docker compose up -d启动全部服务并验证。[!NOTE] 官方文档特别提示由于 Windows 与 Linux 换行符的差异请不要在 Windows 上 clone 仓库后再用 scp 同步到 Linux否则可能导致脚本执行异常应在 Linux 环境直接 clone 或下载 Release 压缩包。2. 基础镜像清单与拉取2.1 必需的基础镜像及版本离线部署至少需要准备以下基础镜像版本号来自官方离线部署文档请与部署目标版本保持一致镜像版本bitnami/kafka3.5.1redis7.0.0mongo6.0.2bitnami/zookeeper3.8minio/minioRELEASE.2024-01-11T07-46-16Z[!IMPORTANT]关于 MySQL 的重要说明OpenIM 自 v3.5.0release-v3.5 分支起已移除 MySQL 组件因此 v3.5.0 及以上版本的离线部署不再需要 MySQL。官方文档给出的命令中虽保留了mariadb:10.6的拉取项但这仅面向更早版本的部署需求使用 v3.5.0 时无需准备。2.2 拉取基础镜像命令在外网机器上执行docker pull bitnami/kafka:3.5.1 docker pull redis:7.0.0 docker pull mongo:6.0.2 docker pull mariadb:10.6 docker pull bitnami/zookeeper:3.8 docker pull minio/minio:2024-01-11T07-46-16Z2.3 可选的 OpenIM 业务镜像如果还需要安装更多 IM 组件可准备以下镜像version-name替换为目标版本版本策略详见本文第 4 节及 docs/contrib/images.mdghcr.io/openimsdk/openim-web:version-nameghcr.io/openimsdk/openim-admin:version-nameghcr.io/openimsdk/openim-chat:version-nameghcr.io/openimsdk/openim-server:version-name2.4 可选的监控组件镜像如需在内网同时部署监控告警体系Prometheus Alertmanager Grafana Node Exporter准备以下镜像镜像版本prom/prometheusv2.48.1prom/alertmanagerv0.23.0grafana/grafana10.2.2bitnami/node-exporter1.7.0拉取命令docker pull prom/prometheus:v2.48.1 docker pull prom/alertmanager:v0.23.0 docker pull grafana/grafana:10.2.2 docker pull bitnami/node-exporter:1.7.03. OpenIM 业务镜像的拉取OpenIM 的 Docker 镜像与 GitHub 上的 tag 版本一一对应每发布一个新版本并打 tagCI 自动化流程就会把对应镜像推送到多个镜像平台。官方强烈推荐使用ghcr.io作为部署镜像源。按镜像类别分别执行# OpenIM ServerIM 服务端核心 docker pull ghcr.io/openimsdk/openim-server:version-name # OpenIM Chat聊天业务层 docker pull ghcr.io/openimsdk/openim-chat:version-name # OpenIM WebWeb 前端 docker pull ghcr.io/openimsdk/openim-web:version-name # OpenIM Admin管理后台前端 docker pull ghcr.io/openimsdk/openim-admin:version-name[!TIP] 关于 OpenIM 镜像版本管理与存储策略的详细说明含 server/chat 版本对应关系可查阅 docs/contrib/version.md。3.1 镜像版本命名规则以 openim-server 为例依据 docs/contrib/images.md镜像遵循语义化版本 2.0.0 策略。例如给仓库打上v3.5.0tag 后CI 会自动发布以下镜像 tagopenim-server:3openim-server:3.5openim-server:3.5.0openim-server:v3.5.0openim-server:latestopenim-server:sha-e0244d9基于 commit SHA 的唯一 tag其中只有sha-commit形式的 tag 是绝对唯一的v3.5.0与3.5.0也保持相对唯一性。部分镜像还提供多架构multi-arch支持可按OS / Arch选择适合当前服务器架构的镜像。4. 镜像仓库源与版本选择4.1 可选的镜像仓库源OpenIM 镜像托管在三个平台可根据网络环境选择仓库源地址适用场景GitHub Container Registryghcr.io/openimsdk/openim-server官方推荐与源码仓库 CI/CD 集成最好阿里云容器镜像服务registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-server中国大陆用户拉取速度快Docker Hubopenim/openim-server全球开发者通用平台例如从不同源拉取openim-server:latest# GitHub docker pull ghcr.io/openimsdk/openim-server:latest # 阿里云大陆推荐 docker pull registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-server:latest # Docker Hub docker pull docker.io/openim/openim-server:latest4.2 版本类型选择部署前需要确定镜像版本官方提供三类选择稳定版Stable如release-v3.2也可以是 3.1、3.3 等 release 分支适合生产环境最新版Latestlatest跟随最新发布main 分支最新版main对应主分支最新代码更新频繁、可能包含不稳定特性。依据 docs/contrib/version.mdOpenIM 采用MAJOR.MINOR.PATCH语义化版本MAJOR表示不兼容的 API 变更MINOR表示向后兼容的新功能PATCH表示向后兼容的缺陷修复。main分支承载最新特性可能不稳定每次重大发布都会派生出如release-v3.1这样的稳定分支tag如v3.1.0则用于锁定不可变的具体版本。4.3 组件版本兼容Version Skew策略离线部署时若混合使用不同版本组件请参考以下兼容约束详见 docs/contrib/version.mdHA 集群中最新与最旧的openim-api实例必须处于同一个 minor 版本内例如同为 v3.3 与 v3.2不能跨两个 minor所有openim-rpc-*组件不得新于 openim-api最多可比 openim-api 旧一个 minor 版本其他服务openim-msggateway、openim-cmdutils、openim-crontask等同样不得新于 openim-api建议与 openim-api 的 minor 版本保持一致最多允许旧一个 minor 以便滚动升级。因此离线环境准备镜像时建议整套组件server、chat、web、admin统一选取同一版本线避免因版本错配导致服务间通信异常。5. 离线部署七步走第 1 步拉取全部所需镜像在外网机器上按第 2、3 节命令逐一docker pull所有需要的镜像基础组件 OpenIM 业务镜像 可选监控镜像。第 2 步导出镜像为 tar 文件# 导出单个镜像 docker save -o tar-file-name.tar image-name # 一次性导出当前机器上的所有镜像 docker save -o tar-file-name.tar $(docker images -q)导出的 tar 包即离线介质建议按镜像分别命名以便内网逐个导入与校验。第 3 步获取部署代码克隆 OpenIM 的 Docker 部署仓库git clone https://github.com/openimsdk/openim-docker.git也可以直接下载 openim-docker 的 Releases 版本压缩包。再次提醒避免在 Windows 上 clone 后 scp 到 Linux换行符差异会导致脚本运行异常。第 4 步传输文件到内网将镜像 tar 包与部署代码通过scp传送到内网服务器scp tar-file-name.tar userremote-ip:/path/on/remote/server也可选择移动硬盘、U 盘等物理介质拷贝具体以目标机器的可达性为准。第 5 步在内网导入镜像# 导入单个镜像包 docker load -i tar-file-name.tar如果一次性拷贝了多个 tar 包可用快捷命令循环导入当前目录下所有包for i in ls ./; do docker load -i $i; done导入完成后可执行docker images确认镜像已就绪。第 6 步进入部署目录并初始化进入openim-docker仓库目录先按仓库 README 的说明准备部署环境。第 7 步使用 Docker Compose 启动export OPENIM_IPyour ip # 设置本机 IP make init # 初始化配置生成 .env 与 config 文件 docker compose up -d # 后台启动全部服务 docker compose ps # 验证各服务运行状态Note如果使用 Docker 20 之前的旧版本请先自行安装docker-compose独立工具并相应调整命令为docker-compose。6. 部署配置关键点内网环境必读6.1OPENIM_IP环境变量export OPENIM_IPyour ip用于指定 API 服务对外地址。依据 docs/contrib/environment.md如果服务器有公网 IP会自动获取内网部署时应显式设置内网 IP。客户端App / Web正是通过该地址访问 API 与 WebSocket 服务的务必设置为客户端可达的地址。6.2 镜像源切换.env中的IMAGE_REGISTRY执行make init后会生成.env文件其中包含镜像仓库源配置默认ghcr.io/openimsdk。内网或大陆环境部署时可注释掉当前IMAGE_REGISTRY并切换为阿里云源以匹配离线镜像包的来源或提升拉取速度# 选择镜像地址GitHub (ghcr.io/openimsdk)、Docker Hub (openim) # 或阿里云 (registry.cn-hangzhou.aliyuncs.com/openimsdk) # 取消下面三项中一项的注释。中国用户推荐阿里云。 # IMAGE_REGISTRYghcr.io/openimsdk # IMAGE_REGISTRYopenim IMAGE_REGISTRYregistry.cn-hangzhou.aliyuncs.com/openimsdk[!IMPORTANT]离线部署中IMAGE_REGISTRY的值必须与内网docker load的镜像实际来源保持一致。例如你用阿里云源拉取并导出了镜像.env中应保持阿里云源配置避免 Compose 启动时去不存在的仓库重新拉取。6.3 Compose 服务构成与默认凭据open-im-server 仓库根目录的 docker-compose.yml 展示了 OpenIM 依赖的完整服务栈mongodb、redis、etcd、kafka、minio、openim-web-front以及可选 profilem下的 prometheus、alertmanager、grafana、node-exporter。各基础组件的镜像均通过环境变量注入如${MONGO_IMAGE}、${REDIS_IMAGE}、${KAFKA_IMAGE}、${MINIO_IMAGE}这些变量在make init生成的.env中定义。Compose 中的默认凭据生产环境务必修改且密码至少 8 位、不允许特殊字符参见 docs/contrib/environment.md组件默认用户名默认密码MongoDBroot / openIMopenIM123Redis-openIM123MinIOrootopenIM123组件统一变量PASSWORDopenIM123常用端口映射示例见 docker-compose.yml服务宿主机端口容器内端口mongodb3701727017redis163796379etcd12379 / 123802379 / 2380kafka190949094minio10005 / 190909000 / 9090openim-web-front11001806.4 配置文件初始化机制make init实际执行的是scripts/init_config.sh相关说明见 docs/contrib/init-config.md它会基于模板渲染生成.env与config.yaml等配置文件。open-im-server 仓库还提供了各服务的配置模板目录 config/例如 config/openim-api.yml、config/kafka.yml、config/minio.yml、config/mongodb.yml 等服务二进制文件清单见 start-config.yml。在离线环境中这些模板同样可随部署代码一并拷入内网按需调整后再启动。7. 部署验证与常见问题7.1 验证手段docker compose ps确认所有容器状态为Updocker images确认全部镜像已导入通过OPENIM_IP对应端口访问 OpenIM Web11001与 API 服务验证链路连通。7.2 常见问题速查现象可能原因与对策Compose 启动时提示拉取镜像失败.env中IMAGE_REGISTRY与离线导入的镜像源不一致确认docker load已成功且 tag 匹配容器启动后服务间无法通信OPENIM_IP未设置为内网可达地址检查 compose 网络与防火墙端口脚本执行报错、格式异常部署代码从 Windows 拷贝导致换行符问题应在 Linux 下 clone 或使用 Releases 压缩包版本混用导致 RPC 通信异常未遵循 version skew 策略整套组件应保持同一 minor 版本线使用旧版 Docker 命令不可用Docker 20 之前需安装独立docker-compose工具7.3 参考与延伸阅读本指南对应的官方设计文档docs/contrib/offline-deployment.md镜像管理策略与多源拉取指南docs/contrib/images.md版本、分支与 tag 管理策略docs/contrib/version.md环境变量与配置项总表docs/contrib/environment.md配置初始化机制docs/contrib/init-config.md官方离线部署文档中还引用了 openimsdk 社区关于离线部署相关议题issue #432、#474的讨论记录可在社区中查阅以获得更丰富的实践反馈。按照上述七个步骤即可在完全隔离的内网环境中完成 OpenIM 全栈部署在此基础上可将镜像包与配置模板固化为一套内部标准件实现多次、批量、可复现的离线交付。【免费下载链接】open-im-serverIM Chat OpenClaw项目地址: https://gitcode.com/gh_mirrors/op/open-im-server创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

OpenDesign 交易终端设计系统(Trading Terminal Design System)实战指南:数据密集型金融界面的深色配色、组件与 Agent 提示词规范

OpenDesign 交易终端设计系统(Trading Terminal Design System)实战指南:数据密集型金融界面的深色配色、组件与 Agent 提示词规范

AI 应用人工智能AI 技能设计系统媒体生成 【免费下载链接】open-design 🎨 Best DeepSeek Harness Design Plugin. The open-source Claude Design alternative. 🖥️ Local-first desktop app. 🖼️ Your coding agent becomes the design e…

2026/9/21 18:57:42 阅读更多 →
卓大师下载官网实战:3个细节搞定性能优化

卓大师下载官网实战:3个细节搞定性能优化

卓大师下载官网实战:3个细节搞定性能优化 面试被问原理答不上来,这种尴尬谁没经历过?尤其是聊到下载站这类高并发场景,张口就是“用CDN”、“加缓存”,结果被追问到底层IO阻塞或者数据库连接池泄漏,瞬间哑火。其实, 性能优化…

2026/9/21 18:56:42 阅读更多 →
小程序在线生成避坑指南,速查手册助你告别报错

小程序在线生成避坑指南,速查手册助你告别报错

小程序在线生成避坑指南,速查手册助你告别报错 盯着屏幕上的红色 StackTrace,是不是感觉脑瓜子嗡嗡的?那一长串 TypeError 和 ReferenceError…

2026/9/21 18:56:42 阅读更多 →

最新新闻

EMQX MatrixDB 桥接:将 IoT 数据实时写入 YMatrix 超融合数据库

EMQX MatrixDB 桥接:将 IoT 数据实时写入 YMatrix 超融合数据库

EMQX MatrixDB 桥接:将 IoT 数据实时写入 YMatrix 超融合数据库 【免费下载链接】emqx The most scalable and reliable MQTT broker for AI, IoT, IIoT and connected vehicles 项目地址: https://gitcode.com/gh_mirrors/em/emqx 本指南介绍 EMQX 数据集成…

2026/9/21 19:32:03 阅读更多 →
react-admin 访问控制核心 Hook:useCanAccess 系列详解与源码剖析

react-admin 访问控制核心 Hook:useCanAccess 系列详解与源码剖析

前端UI组件 【免费下载链接】react-admin A frontend Framework for single-page applications on top of REST/GraphQL APIs, using TypeScript, React and Material Design 项目地址: https://gitcode.com/gh_mirrors/re/react-admin 点击查看 免费下载 useCanAc…

2026/9/21 19:32:03 阅读更多 →
Uber Go Style Guide 解读:顶层变量声明(Top-level Variable Declarations)规范与实践

Uber Go Style Guide 解读:顶层变量声明(Top-level Variable Declarations)规范与实践

Uber Go Style Guide 解读:顶层变量声明(Top-level Variable Declarations)规范与实践 【免费下载链接】guide The Uber Go Style Guide. 项目地址: https://gitcode.com/gh_mirrors/gu/guide 导读 顶层(package 级别&…

2026/9/21 19:32:03 阅读更多 →
vux 样式冗余处理指南:duplicate-style 插件与异步路由样式抽离实践

vux 样式冗余处理指南:duplicate-style 插件与异步路由样式抽离实践

UI组件前端 【免费下载链接】vux Mobile UI Components based on Vue & WeUI 项目地址: https://gitcode.com/gh_mirrors/vu/vux 点击查看 免费下载 本文是 vux(基于 Vue & WeUI 的移动端 UI 组件库)构建优化系列中的 FAQ 实战篇。针…

2026/9/21 19:32:03 阅读更多 →
CodeIgniter File Helper 文件辅助函数完全指南:从写入、删除到权限与 MIME 检测

CodeIgniter File Helper 文件辅助函数完全指南:从写入、删除到权限与 MIME 检测

后端Web框架 【免费下载链接】CodeIgniter Open Source PHP Framework (originally from EllisLab) 项目地址: https://gitcode.com/gh_mirrors/co/CodeIgniter 点击查看 免费下载 本文以 CodeIgniter 框架内置的 File Helper(文件辅助函数)…

2026/9/21 19:32:03 阅读更多 →
川川和洋洋实战项目避坑指南:5个致命Bug让面试直接挂

川川和洋洋实战项目避坑指南:5个致命Bug让面试直接挂

川川和洋洋实战项目避坑指南:5个致命Bug让面试直接挂 上周陪一个做Java后端的朋友面大厂,他简历上写着“负责高并发订单系统”,结果面试官问一句“你的分布式锁是怎么保证互斥性的?”,他愣了三秒,说“用了Redis,设了过期时间”。面试官直…

2026/9/21 19:31:02 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/21 3:13:20 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/21 4:51:05 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/21 15:36:51 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/21 15:36:51 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →