docker moby 下载
它是什么Moby 是 Docker 公司发起的开源容器化项目,提供乐高套装式的工具组件库与装配框架,可从源码编译出 dockerd,也可通过各发行版仓库获取 Moby 包,用于构建定制化的容器系统。
Moby 是 Docker 公司发起的开源容器化项目,提供乐高套装式的工具组件库与装配框架,可从源码编译出 dockerd,也可通过各发行版仓库获取 Moby 包,用于构建定制化的容器系统。
详细介绍
简介
Moby 是 Docker 公司发起的开源项目,目标是推进并加速软件容器化。它提供一套乐高套装式的工具组件库,以及一个把组件装配成定制化容器系统的框架,同时充当容器发烧友试验与交流想法的场所。它解决的核心问题是重复造轮子:不必从零编写容器运行时,可直接取用成熟组件自由拼装。适合需要自定义容器系统、研究容器实现细节、或维护发行版仓库中容器引擎的运维与开发者。核心优势在于组件可拆可换、装配方式开放、上游代码公开可查。
核心功能
- 提供乐高套装式的工具组件库,容器运行所需的各项能力被拆成独立组件,可按需取用与替换。
- 提供装配框架,把选中的组件组合成一套定制化的、基于容器的系统,而不必重新实现底层能力。
- 作为 Docker Engine 的开源上游项目,仓库中的代码可编译出 dockerd,即容器守护进程。
- 与 docker 命令行项目分工明确:moby 仓库产出 dockerd,docker/cli 仓库产出 docker 命令,两者配合构成完整引擎与客户端。
- 项目由 Docker 公司拥有并持续使用其中组件,代码托管在 https://github.com/moby/moby,项目站点为 https://mobyproject.org/。
- 在多个 Linux 发行版的软件仓库中以包的形式提供容器引擎能力,用户可直接通过系统包管理器获取。
使用场景
- 从源码构建自有容器引擎:克隆 https://github.com/moby/moby 编译出 dockerd,再克隆 https://github.com/docker/cli 编译出 docker 命令,组合成一套可掌控构建过程的容器环境。
- 在 Alibaba Cloud Linux 4 上使用系统自带能力:该系统默认通过 Moby 包提供容器引擎,命令与服务名仍是 docker、dockerd,日常操作与常规 Docker 环境一致。
- 在 openEuler 上使用仓库维护的容器引擎:安装 Moby 后再补上 docker compose 插件,即可在统一的 docker 前缀下使用编排能力。
- 在 Fedora 上做包选型:默认仓库同时存在 docker 包与 moby-engine 包,可按自己希望跟随的仓库来源选择其一提供容器引擎。
- 自定义容器系统:按 StackOverflow 上开发者提出的问题,可用 Moby 的组件装配出面向特定需求的容器系统,例如裁剪出只含所需能力的运行环境。
- 在 Windows 环境中运行 Linux 容器:社区讨论提到 Moby 曾是在 Windows 内运行 Linux 容器的默认方式,适合需要跨平台容器开发的使用者。
安装与获取步骤
- 访问源码仓库 https://github.com/moby/moby,查看 README 与项目文档,确认组件清单与构建方式,具体细节以官方页面为准。
- 从 moby 源码编译出 dockerd;随后获取 https://github.com/docker/cli 编译出 docker 命令,两者齐备后才具备完整的引擎与客户端。
- 若不想自行编译,改用发行版软件仓库:Alibaba Cloud Linux 4 默认提供 Moby 包,openEuler 仓库也维护 Moby,Fedora 默认仓库提供 moby-engine 包,用对应包管理器获取即可。
- 需要 docker compose 能力时,在获得 Moby 引擎后补装 docker compose 插件,命令行仍沿用 docker 前缀。
- 只想快速跑起容器做一次性测试时,可配置 Docker 官方源后用包管理器获取,或使用官方脚本 get.docker.com 一键准备环境。
与 Docker 的区别
Moby 与常被提及的 Docker、Docker CE 并非同一层概念。Moby 是开源上游项目与组件装配框架,Docker Engine 则是由这些组件构建出的容器引擎产品;发行版文档中明确,Moby 包含了 Docker 的完整核心功能,因此在 Alibaba Cloud Linux 4 等系统中装好 Moby 包后,提供的命令与服务名依旧是 docker 与 dockerd。社区曾围绕命名展开讨论,GitHub issue #40222 提出把 moby 改回 docker,理由是改名带来困惑;同时 Docker/Moby 在 DockerCon 上发布过 17.06 CE,但仓库中并不存在对应的 17.06 分支,说明发布版本与源码分支并非一一对应。选型时应先确认你要的是上游组件、发行版仓库中的引擎包,还是官方源里的 Docker CE。
注意事项
- 不要把 Moby 仓库与 docker 命令行仓库混为一谈:只取 moby 会得到 dockerd 而缺少 docker 客户端,两者需配合使用。
- 不同发行版的包名并不统一,可能叫 Moby,也可能叫 moby-engine,选包前先在本机仓库中检索确认。
- 项目改名曾引发社区争议,issue #40222 认为改名未带来价值,查阅资料时用 Moby 与 Docker 两个关键词交叉检索更稳妥。
- Moby 项目归 Docker 公司所有,公司自身也在各处使用其中组件,涉及商用或二次分发前请以官方页面的许可说明为准。
- 各发行版仓库中的 Moby 包内容、命令与服务名可能不同,具体参数与版本以对应发行版官方页面为准。
更新记录
最近更新:2026-10-09
软件参数速览
常见问题
Moby 和 Docker 是同一个东西吗?
不是。Moby 是 Docker 公司发起的开源上游项目,提供组件库与装配框架;Docker Engine 及 docker 命令由这些组件构建而来。发行版仓库中的 Moby 包包含 Docker 的完整核心功能,使用时命令仍是 docker、服务名仍是 dockerd。
想编译出 dockerd,应该克隆哪个仓库?
克隆 https://github.com/moby/moby 编译 dockerd,再克隆 https://github.com/docker/cli 编译 docker 命令。只有两者齐备,才同时拥有容器守护进程与命令行客户端,具体构建方式以仓库文档为准。
Fedora 上的 moby-engine 包能替代 docker 包吗?
Fedora 默认仓库同时提供 docker 与 moby-engine 两个包,都能给出容器引擎能力。选哪个取决于你希望跟随哪个仓库维护,两者内容差异请以 Fedora 官方页面的包说明为准。
Alibaba Cloud Linux 4 用 Moby 后命令会变吗?
不会。该系统默认通过 Moby 包提供容器引擎能力,装好后系统提供的命令与服务名依旧是 docker 和 dockerd,日常使用方式与常规 Docker 环境一致,无需改写既有脚本。
想自定义容器系统却找不到 17.06 分支怎么办?
有开发者在 StackOverflow 提到,Docker/Moby 发布 17.06 CE 时仓库里没有对应分支,说明发布号不等于源码分支。应按仓库文档用组件自行装配,具体组合方式以官方页面为准。
Moby 改名事件会影响我使用 docker 命令吗?
不会。改名只涉及项目与仓库命名,GitHub issue #40222 甚至提出改回 docker。无论项目叫什么,编译产物与发行版包对外提供的仍是 docker 命令与 dockerd 服务。
openEuler 上如何补上 compose 能力?
先从 openEuler 仓库获取 Moby 得到容器引擎,再补装 docker compose 插件,命令行仍统一使用 docker 前缀。包名与仓库配置请以 openEuler 官方文档为准。
Moby 的组件可以只取一部分来拼装吗?
可以,项目定位就是提供乐高套装式的组件库与装配框架,按需取用组件拼装定制容器系统。但组件之间的兼容组合需参考 https://mobyproject.org/ 与仓库说明,细节以官方页面为准。