Moby:Docker 背后的容器引擎底座

Moby:Docker 背后的容器引擎底座

Docker 的底层引擎,就是这个叫 Moby 的开源项目,GitHub 上累计 71,720 颗 Star。

正文顶部截图

Moby 是 Docker 公司发起的开源项目,定位是容器技术的"乐高积木"。它不是一个单独的工具,而是一整套组件的集合,包括容器构建工具、镜像仓库、编排工具、运行时等。开发者可以按需取用,拼装出自己的容器系统。

README区域截图

设计原则

Moby 的设计遵循几个明确的原则:

模块化:项目包含大量组件,每个组件都有明确的功能定义和 API 接口,彼此之间可以协作,也可以独立使用。

电池可换:Moby 自带的组件足以构建功能完整的容器系统,但它的模块化架构保证了大部分组件都可以被替换为其他实现。

安全可用:提供安全的默认配置,同时不牺牲易用性。

面向开发者:API 设计以功能和实用性为导向,目标用户是开发者而非终端用户。文档和交互设计也围绕开发者展开。

谁适合用 Moby

Moby 面向的是工程师、集成商和容器技术爱好者。适合那些想基于容器做二次开发、调试、实验、构建自有系统的人。它不是面向需要商业支持的用户的,而是面向想用开源代码工作和学习的人群。

和 Docker 的关系

Moby 里的组件和工具,最初就是 Docker 项目中的开源部分。Docker 承诺以 Moby 作为上游,同时也鼓励其他项目把 Moby 当上游来用,各种使用方式一视同仁。

需要注意的是,Moby 不是处理 Docker 产品问题的地方,它是贡献者写开源代码、修 bug、改进代码的地方。发布版本由维护者和社区以尽力而为的方式支持。需要企业级支持的用户,应该选择 Docker Desktop 或 Mirantis Container Runtime。

Go 模块变化

从 Docker v29(2025 年 11 月发布)开始,原来的 Go 模块路径 github.com/docker/docker 已经停用,不再更新。

现在可用的公开 Go 模块有两个:

  • github.com/moby/moby/client:Docker Engine API 的 Go 客户端
  • github.com/moby/moby/api:客户端和服务端共享的 API 类型

根模块 github.com/moby/moby/v2 用于构建基于 Moby 的容器引擎(比如 Docker Engine),它只产出二进制文件,不适合作为 Go 库导入,也没有 API 稳定性保证。

如果你的代码还在用旧的 import 路径,需要手动替换:

- 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 包含大量 breaking API 变更,包括 option 结构体、方法重命名、类型迁移等,具体可以参考 v29.0.0 的 release notes。

Moby 使用 Apache License 2.0 开源。

9.0.0 的 release notes。

Moby 使用 Apache License 2.0 开源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值