
Moby / Docker Engine · 开源容器化平台|使用与源码构建全指南
项目仓库: https://github.com/moby/moby
开源协议:Apache 2.0 · 语言:Go · Go
模块:github.com/moby/moby/client ·
发布标签:docker- 前缀 · 与 Docker 关系:Moby 是 Docker
产品的上游开源项目
1 项目简介
Moby 是 Docker 创建的开源项目,用于实现并加速软件容器化。它提供一套"乐高积木"式的工具组件、把它们组装成自定义容器系统的框架,以及供容器爱好者与专业人员实验交流的场所。组件包括容器构建工具、容器镜像仓库、编排工具、运行时等,可作为构建块与其他工具组合。Docker 以 Moby 作为 Docker 产品的上游。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | Moby Project(Docker Engine 上游) |
| 仓库地址 | github.com/moby/moby |
| 项目定位 | 开源容器化工具组件集 |
| 开源协议 | Apache 2.0 |
| 语言 | Go |
| Go 客户端模块 | github.com/moby/moby/client |
| 发布标签 | docker- 前缀(如 docker-v29.0.0) |
1.2 适用场景
- 想要容器化应用的工程师/集成者。
- 想修改、实验、构建自定义容器系统。
- 用 Go 客户端调用 Docker Engine API。
1.3 能力边界(官方口径)
- Moby 不是 Docker 产品的支持渠道;企业支持用 Docker Desktop 或 Mirantis Container Runtime。
- 根模块
github.com/moby/moby/v2只产出二进制,不作为 Go 库导入,无 API 稳定性保证。
2 设计原则与受众
- 模块化:包含足够组件搭出完整容器系统,但可替换。
- 面向开发者:API 面向构建工具的开发者,而非终端用户。
- 受众:想修改、实验、发明容器系统的工程师、集成者与爱好者。
3 官方跳转链接汇总
| 类别 | 链接 | 说明 |
|---|---|---|
| 仓库主页 | https://github.com/moby/moby | 源码 |
| Go 客户端 | github.com/moby/moby/client | Docker Engine API Go 客户端 |
| v29 发布说明 | docker-v29.0.0 | Go SDK 变更 |
| Docker Desktop | docker.com/products/docker-desktop | 企业产品 |
4 Go 模块迁移(v29 起)
自 Docker v29(2025 年 11
月发布)起,github.com/docker/docker
模块废弃不再更新,迁移到 Moby 模块:
- import "github.com/docker/docker/client"
+ import "github.com/moby/moby/client"
- import "github.com/docker/docker/api/types"
+ import "github.com/moby/moby/api/types"v29 含大量破坏性变更(option struct、方法重命名、类型移动),详见 v29.0.0 发布说明。
5 使用与构建
- 普通用户:直接安装 Docker Desktop / Docker Engine(产品),无需克隆本仓库。
- 构建容器引擎:根模块
github.com/moby/moby/v2用于构建基于 Moby 的容器引擎(如 Docker Engine)。 - 发布标签:Docker Engine 发布以
docker-前缀打标签(如docker-v29.0.0),仅供从根模块构建二进制,不要go get。
6 常见问题
- Moby 和 Docker 什么关系:Moby 是上游开源项目,Docker 产品基于它。
- 企业支持:用 Docker Desktop 或 Mirantis Container Runtime,不要在 Moby 仓库提产品支持请求。
- import 路径变了:迁移到
github.com/moby/moby/client。
7 风险与说明
- 许可证:Apache 2.0。
- 出口管制:使用/转移 Moby 可能受美国等政府法规限制。
- 非官方声明:本文基于官方仓库 README 整理,模块与标签以 master 分支最新为准。