moby 容器 使用教程
它是什么moby 容器使用教程:讲解 moby 项目如何用乐高式组件库与装配框架构建定制容器系统,默认运行时为 containerd
moby 是 Docker 发起的开源容器项目,提供乐高式组件库与装配框架,用 OCI 容器搭建定制容器系统,本文整理其核心功能、适用场景,以及在 openEuler、Alibaba Cloud Linux 与 Windows Server 上的获取方式。
详细介绍
简介
moby 是由 Docker 发起的开源项目,用来推动并加速软件容器化的落地。它不直接交付一个固定成品,而是提供一套「乐高积木」式的工具组件库、一个把组件装配成定制化容器系统的框架,以及一个容器爱好者试验与交流想法的场所。它适合需要自定义容器技术栈的运维工程师、发行版维护者与平台开发者:所有 Moby 组件本身就是容器,新增或替换组件只需构建一个符合 OCI 规范的容器镜像,默认运行时采用 containerd,因此组件边界清晰,可以逐个挑选与替换。
核心功能
- 组件库:提供一套工具组件(toolkit components),可按需挑选,像乐高积木一样组合使用。
- 装配框架:把选定的组件装配成一套定制化的、基于容器的系统,而不只是给出单一固定发行版。
- 组件容器化:所有 Moby 组件都是容器,新增一个组件等同于构建一个新的 OCI 兼容容器,门槛低且与现有镜像流程一致。
- 默认运行时:Moby 使用 containerd 作为默认容器运行时,运行时层与上层组件解耦。
- 容器引擎能力:在部分发行版中由 moby 软件包提供容器引擎,系统同时给出 docker 命令与 dockerd 服务名。
- 镜像发布渠道:Docker Hub 上的 moby 组织作为开源发布者,维护并对外提供其官方镜像。
- Kubernetes 集成汇总:官方专设页面按项目梳理每个 Moby 项目与 Kubernetes 的集成方式及参与途径,涉及 containerd 与 cri-containerd。
- Go 模块文档:pkg.go.dev 上可查阅 github.com/moby/docker 等模块的接口说明,便于在 Go 代码中引用相关能力。
使用场景
- 发行版内置容器引擎:Alibaba Cloud Linux 4 系统默认通过 moby 包提供容器引擎能力,命令与服务名由系统给出。
- 从软件仓库获取并验证:以提供 moby 软件包的 openEuler 24.03 LTS SP3 为例,获取后运行一个 Compose 项目验证整条链路。
- Windows 容器环境准备:在运行 Windows Server 的虚拟机上,用 PowerShell 脚本在几个步骤内完成 Moby 与容器运行时的准备。
- 定制容器技术栈:希望自定义每一个组件的团队,用组件库加装配框架搭出贴合自身需求的容器系统。
- Kubernetes 集成与贡献:按官方汇总页对照各 Moby 项目与 Kubernetes 的集成方式,选择对应项目参与。
- 组件试验与交流:容器爱好者在同一场所试验新想法,新组件以 OCI 容器形式提交,便于他人复现与反馈。
与 Docker 的关系
Moby 由 Docker 发起并开源,社区普遍把 Docker 看作由 Moby 默认配置构建出来的产物之一;Moby 的着眼点更大,目标是帮助构建客制化的容器技术栈,允许自定义每一个组件。因此在讨论「Docker 是否改名 Moby」这类话题时,应区分产品与项目两层含义,相关背景可参考 infoq.cn 上的讨论文章。
从使用角度看,两者共享同一套容器化目标:把软件及其依赖打包后在目标机器上运行。差别在于获取与交付方式——Moby 强调组件库、装配框架与试验场所,Docker 则是面向最终用户的容器化平台形态。具体到某个发行版提供的是哪个包、哪个命令,以该发行版与官方页面为准。
安装与获取步骤
- 先确认目标发行版的软件仓库是否提供 moby:执行 dnf info moby 查看仓库信息,其他版本同样先做这一步确认。
- openEuler 场景:以提供 moby 软件包的 openEuler 24.03 LTS SP3 为例,从软件仓库获取 moby,随后运行一个 Compose 项目确认可用。
- Alibaba Cloud Linux 4 场景:系统默认通过 moby 包提供容器引擎能力,获取后直接使用系统提供的命令与服务名(服务名对应 dockerd)。
- Windows 场景:在运行 Windows Server 的虚拟机上,使用 PowerShell 脚本在几个步骤内完成 Moby 与容器运行时的准备,具体脚本以微软虚拟化文档为准。
- 源码与文档:代码仓库为 github.com/moby/moby,项目官网为 mobyproject.org,Kubernetes 集成汇总页为 mobyproject.org/kubernetes/。
- 镜像获取:在 Docker Hub 的 moby 组织页 hub.docker.com/u/moby 查看该组织当前维护的官方镜像列表。
注意事项
- 各发行版仓库是否提供 moby 包并不一致,先用 dnf info moby 确认;仓库未提供时以官方页面为准。
- 包名、命令、服务名与参数会随发行版不同而有差异,以对应发行版文档与官方页面为准,不要照搬其他系统的写法。
- Moby 不等于「Docker 改名」,两者定位不同:一个是组件库与装配框架,一个是面向用户的容器化平台形态。
- 组件清单、镜像列表与集成方式会随项目演进变化,以 mobyproject.org 与 Docker Hub 的 moby 组织页面为准。
- 与 Kubernetes 的集成方式因 Moby 项目而异,需按官方汇总页逐项核对,不能假定所有项目采用同一套对接路径。
更新记录
最近更新:2026-10-03
软件参数速览
下载
常见问题
Moby 和 Docker 是什么关系,Moby 是 Docker 改名了吗?
Moby 由 Docker 发起,提供组件库与装配框架,Docker 可以看作由 Moby 默认配置构建出的产物之一;Moby 的目标是构建可自定义每一个组件的容器技术栈,两者定位不同,并非简单改名。
在 openEuler 上如何确认仓库是否提供 moby 包?
先执行 dnf info moby 查看仓库信息;以提供 moby 软件包的 openEuler 24.03 LTS SP3 为例,确认后再从软件仓库获取,随后运行一个 Compose 项目验证整条链路。
Alibaba Cloud Linux 4 上获取 moby 后,用什么命令管理容器引擎?
该系统默认通过 moby 包提供容器引擎能力,获取后直接使用系统提供的命令与服务名,服务名对应 dockerd,具体参数以该发行版文档为准。
想替换容器系统里的某个组件,应该从哪里入手?
所有 Moby 组件都是容器,因此新增组件只需构建一个新的 OCI 兼容容器,再通过装配框架纳入系统,不必改动其他组件的构建方式。
Moby 默认使用哪个容器运行时?
Moby 使用 containerd 作为默认容器运行时。若要更换或对接其他运行时,可按 mobyproject.org 上的组件说明核对当前配置。
Windows Server 虚拟机上如何准备 Moby 与容器运行时?
在运行 Windows Server 的虚拟机上,可以使用 PowerShell 脚本在几个步骤内完成 Moby 与容器运行时的准备,具体脚本以微软虚拟化文档为准。
Moby 项目与 Kubernetes 如何对接?
官方页面 mobyproject.org/kubernetes/ 按项目汇总了各自的集成方式与参与途径,其中涉及 containerd 与 cri-containerd,需逐项核对。
去哪里找 Moby 维护的官方镜像?
Docker Hub 上的 moby 组织(hub.docker.com/u/moby)作为开源发布者维护官方镜像,可在其组织页查看当前维护的镜像列表。