moby v29.0.3¶
为什么要使用Moby¶
想象一下,你是一位渴望创造前所未有的数字艺术的建筑师。你手中的工具功能强大,却如同一个浑然天成的黑盒——它成就了无数杰作,但当你试图构建一座突破想象边界的奇观时,却感到每一面墙、每一扇窗都被预先设定。你渴望的,不是另一座精美的样板房,而是能够亲手锻造砖瓦、定义蓝图、让灵感无拘无束流淌的自由。
这就是开发者与标准化容器工具之间深藏的**矛盾**:我们拥抱容器化带来的效率与一致,却时常在标准化与个性化需求的拉扯中感到束缚。你为何要使用 Moby?答案正在于此。Moby 不是另一个替代品,它是赠予建造者与革新者的**自由宪章**。它撕开了“黑盒”的封装,将业界标准的容器技术分解为一系列乐高式的核心组件。使用 Moby,意味着你不再仅仅是“使用者”,而是“塑造者”。你可以取其精华,组合、裁剪、创新,打造出完全贴合你独特业务逻辑、基础设施或硬件环境的容器系统。当你需要为物联网设备打造极简运行时,或为特定场景构建高度定制化的调度器时,Moby 提供了那条从“只能使用”通往“可以创造”的隐秘小径。它解决的不是“怎么做”的问题,而是“如何以我的方式实现”的根本矛盾。
moby是什么¶
简而言之,Moby 是一个开源项目,它提供了组件化的“乐高积木”,用来组装专有的、定制化的容器化系统。
你可以将它理解为 Docker 引擎的“内核”与“组件库”。Docker 产品本身,就是基于 Moby 项目中的这些组件构建而成的一个非常流行且用户友好的具体实现。Moby 项目将容器化技术拆解为容器运行时、镜像构建、网络、存储等多个独立模块,允许开发者和企业像挑选并拼装乐高一样,将这些模块与自己的软件结合,创造出全新的、量身定制的容器产品或内部平台。
入门示例¶
场景: 假设你是一家智能家居公司的核心开发者,公司的新一代边缘计算网关搭载了特定的 ARM 芯片和轻量级定制 Linux 系统。你需要在这些资源严格受限的设备上,部署和管理多个负责数据处理、本地AI推断和通信的服务。标准的 Docker 引擎可能包含一些网关设备不需要的功能,显得过于臃肿。
目标: 利用 Moby,为你的定制硬件构建一个极度精简、只包含必需功能的专属容器引擎。
开发示例:
-
获取与探索组件:
-
定义你的专属系统蓝图: 你并不需要从头编译所有代码。Moby 社区提供了强大的框架来定义你的“装配清单”。创建一个
moby.yml配置文件:这个配置文件描述了你系统的每一个部分:用什么内核、启动什么服务、包含哪些文件。# moby.yml - 我的边缘容器引擎定义 name: "my-edge-container-engine" kernel: image: "linuxkit/kernel:5.10.xx-arm64" # 指定为你的ARM芯片优化的内核 cmdline: "console=tty0 page_poison=1" init: - "linuxkit/init:v0.8" - "linuxkit/runc:v0.8" onboot: - name: sysctl image: "linuxkit/sysctl:v0.8" services: - name: containerd image: "linuxkit/containerd:v0.8" # 核心容器运行时 - name: 我的定制网络插件 image: "my-registry/custom-network-driver:arm64v8" # 集成你为边缘网络写的驱动 files: - name: 配置文件 path: /etc/myengine/config.toml contents: | [plugins] [plugins."io.containerd.grpc.v1.cri"] disable_cgroup = true # 为精简性禁用非必需功能 trust: org: - "my-registry" -
构建与产出: 使用 Moby 工具
产出物可以是一个可直接刷入网关设备的磁盘镜像(moby build来根据蓝图构建最终系统镜像。.img文件),或者一个用于开发的虚拟机镜像。它**只包含**你定义的组件,体积小巧,完全为你的边缘场景优化。
通过这个示例,你不再是简单地 docker run,而是扮演了架构师的角色,利用 Moby 的组件库,为特定领域创造了一个全新的、纯粹的容器化基础。
moby v29.0.3版本更新了什么¶
Moby v29.0.3 是一个维护版本,主要专注于修复错误和提升稳定性。本次更新修复了 docker version 命令在 JSON 格式输出中的时间格式问题,修正了 docker image ls 命令忽略用户自定义镜像格式配置的缺陷。此外,它还解决了一个在使用远程网络驱动插件时可能导致 Docker 守护进程崩溃的关键问题,增强了系统的可靠性。
更新日志¶
29.0.3¶
有关此版本中所有拉取请求和更改的完整列表,请参考相关的 GitHub 里程碑页面: * docker/cli, 29.0.3 里程碑 * moby/moby, 29.0.3 里程碑
Bug修复与功能增强¶
docker version --format json:恢复了顶层的BuildTime字段,使其使用 RFC3339Nano 格式。- 修复了
docker image ls命令忽略docker.json中自定义imageFormat配置的问题。
网络¶
- 修复了在使用远程网络驱动插件时可能导致守护进程崩溃的问题。
总结概括¶
总而言之,v29.0.3 版本是一次聚焦于“修复与稳固”的更新。它细致地处理了从命令行输出格式一致性到配置项生效,乃至底层网络插件稳定性等多个层面的问题,旨在为用户提供更可靠、行为更预期的使用体验。