docker moby 社区 版
它是什么Moby 是 Docker 公司创建的开源项目,提供乐高式工具箱组件与开放框架,用于拼装专用容器系统,也是 Docker Engine 的上游项目,常被称为 Docker 社区版,适合发行版维护者与需要定制容器运行时的团队
Moby 是 Docker 公司创建的开源项目,提供乐高式工具箱组件与开放框架,用于拼装专用容器系统,也是 Docker Engine 的上游项目,常被称为 Docker 社区版,适合发行版维护者与需要定制容器运行时的团队。
详细介绍
简介
Moby 是 Docker 公司创建并维护的开源项目,目标是让软件容器化更快落地。它不直接给你一个成品,而是提供一套乐高式工具箱组件和一个开放框架,让人按需拼装出专用容器系统,不必重复造轮子。它同时是 Docker Engine 的开源上游项目,Docker 官网把 Moby 称作社区版。适合发行版维护者、需要定制容器运行时的团队,以及想搞清容器引擎内部构造的开发者;核心优势在于组件可替换、与 Docker 生态同源、代码全部公开可审。
核心功能
- 乐高式工具箱组件:官方将其描述为一套 toolkit 组件,可按需挑选与组合,避免为容器化重复造轮子。
- 开放框架:围绕「组装专用容器系统」设计,把若干组件拼成面向具体场景的容器方案,而不是只提供单一成品。
- Docker Engine 的开源上游项目:容器引擎主体代码在 moby/moby 仓库中公开演进,社区讨论也围绕这一上游关系展开。
- 可被 Go 项目直接引用:Go 包索引提供 github.com/moby/docker 模块页,说明文字与 Moby 项目定位一致。
- 命令体验延续 docker:openEuler 仓库维护的 Moby 使用后仍是 docker 命令,再补 docker compose 插件即可管理多服务。
- 发行版仓库可直接获取:openEuler 等发行版在自有软件仓库中维护 Moby 包,不必自行从源码构建。
- 曾是 Windows 运行 Linux 容器的默认方式:Reddit 社区讨论指出这一点,也是它在 GitHub 上被长期关注的原因之一。
- 基于时间的版本发行机制:Docker 从 17.03 开始采用按时间编号的发行方式,对照 Moby 版本时需按此规则查找。
使用场景
- 发行版自带容器引擎:openEuler 用户从软件仓库取 Moby,再补 docker compose 插件,获得与 docker 命令一致的操作方式。
- 定制专用容器系统:开发者按 moby 的组件清单拼装满足特定需求的容器方案,Stack Overflow 上就有这类具体提问。
- Windows 中运行 Linux 容器:Moby 曾是该场景的默认实现,理解它有助于排查 Windows 侧的容器问题。
- 应用标准化部署:把应用及依赖打包成可移植容器,实现标准化部署并简化多服务管理,对应阿里云 ECS 文档的使用场景。
- 边缘与消息服务容器化:EMQX Edge 文档用官方镜像快速运行 NanoMQ,并在容器模式下加载自定义配置。
- 阅读容器引擎源码:想搞清 Docker Engine 内部构造的开发者,可直接从 moby/moby 仓库入手,配合 Go 模块页查阅。
与 Docker CE 的区别
社区最常见的疑问是「Moby 是不是就是 docker-ce」。综合检索素材看,两者是上下游关系:Moby 是 Docker Engine 的开源上游项目,Docker 官网把它称为社区版,而 docker-ce 是围绕它的社区发行称呼;Docker 本身并没有改名。
- 归属:Moby 项目由 Docker 公司拥有,Docker 用它的各个部分拼装发行版本,社区对这种做法在 GitHub、Hacker News 上有过不同声音。
- 命名:Docker 仍然还叫 Docker,Moby 是它的上游项目,被称作「Docker 之母」,不是改名换姓。
- 分支:Docker/Moby 公布 17.06 CE 时仓库里没有 17.06 分支,说明发布版本与代码分支并非一一对应,对照时以官方页面为准。
- 获取途径:Moby 可从 GitHub 取源码,也可从发行版软件仓库取包;标准 Docker Engine 则按 Docker 官方文档的 Linux 说明获取。
- 命令:openEuler 上的 Moby 使用后仍是 docker 命令,已有脚本无须改写。
安装与获取步骤
- 访问 https://github.com/moby/moby 阅读 README 与仓库结构,确认当前提供的工具箱组件清单。
- 访问 https://mobyproject.org/ 核对 Moby 的定位描述:开放框架、乐高式组件、用于组装专用容器系统。
- Linux 上要使用发行版维护的容器引擎时,从对应软件仓库获取 Moby 包(openEuler 即如此),随后补上 docker compose 插件。
- 需要标准 Docker Engine 的用户,按 https://docs.docker.com/engine/install/ 的 Linux 说明操作;Windows、macOS、Linux 也可通过 Docker Desktop 获得。
- Go 项目需要引用相关代码时,查看 https://pkg.go.dev/github.com/moby/docker 模块页的 API 说明。
- 想用 moby 自行拼装容器系统时,先确认目标发布版本在仓库中对应的分支是否存在,具体以官方页面为准。
注意事项
- 不要把 Moby 与 docker-ce 当成同一个东西:前者是上游开源项目,后者是社区发行称呼,沟通时先说清指哪一个。
- Docker 没有改名,Docker 仍然还叫 Docker;Moby 是它的上游项目,把两者混为一谈会误导选型与排障。
- 本文不给出具体版本号、Stars 数与发布日期,涉及这些信息时以官方页面为准。
- 在 openEuler 等发行版上使用 Moby 时,命令仍是 docker,不要去找名为 moby 的可执行文件。
- Moby 项目由 Docker 公司拥有,社区对它的发布方式有过争议,评估方案时可同时参考 GitHub 与 Hacker News 的讨论。
- Windows、macOS 用户通常通过 Docker Desktop 使用 Docker Engine,Moby 的定制玩法主要面向 Linux 与需要专用容器系统的场景。
- 组件的可替换范围与具体用法以 https://mobyproject.org/ 与仓库文档为准,避免凭印象拼出无法运行的组合。
更新记录
最近更新:2026-10-09
软件参数速览
常见问题
Moby 和 docker-ce 是同一个东西吗?
不是。Moby 是 Docker 公司维护的开源上游项目,提供可组合的工具箱组件;docker-ce 是围绕它的社区发行称呼。仓库里也没有与 17.06 对应的分支,具体对应关系以官方页面为准。
Docker 是不是改名成 Moby 了?
没有。Docker 仍然还叫 Docker,Moby 是 DockerCon 上公布的上游项目,被称作「Docker 之母」,两者是上下游关系,不是改名。
在 openEuler 上使用 Moby 后用什么命令操作容器?
仍然使用 docker 命令。openEuler 仓库维护的容器引擎就是 Moby,取好包后补上 docker compose 插件即可管理多服务编排,命令用法与常见 Docker 环境一致。
想用 moby 拼装容器系统,为什么找不到 17.06 分支?
Stack Overflow 上有同样提问:Docker/Moby 公布 17.06 CE 时仓库里没有 17.06 分支,说明发布版本与分支不一一对应,具体构建方式以官方页面为准。
Moby 在 GitHub 上为什么有那么多 star?
社区讨论认为,它曾是 Windows 上运行 Linux 容器的默认方式,Docker 公司又用它的各个部分拼装发行版本,历史使用者多。具体 star 数字以官方仓库页面为准。
只想跑容器,该选 Docker Engine 还是 Moby?
普通应用部署建议直接用 Docker Engine:Docker 官方文档提供 Linux 各发行版的获取说明,Windows、macOS、Linux 也可通过 Docker Desktop 获得。Moby 更适合需要定制容器系统的场景。
Moby 说的「乐高组件」具体指什么?
官方描述是一套 toolkit 组件,用开放框架组装出专用容器系统而不必重复造轮子。组件清单与可替换范围以 https://mobyproject.org/ 和 GitHub 仓库说明为准。
Go 项目能直接引用 moby 的代码吗?
可以,Go 包索引上有 github.com/moby/docker 模块页,其说明与 Moby 项目一致:由 Docker 创建的开源项目,提供乐高式工具箱组件。具体 API 以该模块页为准。