
Apple Container 结合 macOS 框架与模块化插件体系,提供了强大的容器化环境。理解其架构与可扩展性,有助于开发者在云原生与虚拟化场景下充分发挥其能力。
Container[1] 是 Apple 提供的开源命令行工具,专为在 Mac 上运行 Linux 容器而构建,尤其针对 Apple Silicon 进行了优化。它由 Swift 编写,基于 Containerization Framework[2] 构建。Apple Containerization 和 Container CLI 于 WWDC 2025 发布。
延伸阅读:
Apple Container 是一种客户端 - 服务器架构系统,使 macOS 上能够运行容器化工作负载。本文将深入探讨其架构、启动流程、核心插件、可扩展性及安全性等内容。
Apple Container 利用多项关键技术与框架:

该系统采用客户端 - 服务器模型,CLI 通过 client 与 container-apiserver 及其辅助进程通信。
安装 container 后,需执行的首个命令为:
container system start
未执行该命令时,运行其他命令会出现 XPC connection error: Connection invalid 等错误。这是因为 CLI 依赖 client 与 container-apiserver 通信,而 container-apiserver 是通过 container system start 启动的 launch agent。apiserver 提供一系列 API 用于管理容器与网络资源。
XPC 提供了一种轻量级的进程间通信(IPC)机制,实现客户端与服务端的点对点连接。XPC 服务由 launchd 系统管理,按需启动和停止。
container-apiserver 启动后,会加载位于 /usr/local/libexec/container/plugins 目录下的核心插件。这些插件即为 XPC 服务。插件启动后,三大核心服务即可使用。
ls -l /usr/local/libexec/container/plugins
total 0
drwxr-xr-x 4 root wheel 128 Jun 10 04:04 container-core-images
drwxr-xr-x 4 root wheel 128 Jun 10 04:04 container-network-vmnet
drwxr-xr-x 4 root wheel 128 Jun 10 04:04 container-runtime-linux
核心插件及其职责如下:
com.apple.container.core.container-core-images):提供镜像与本地内容存储管理 API,支持拉取、推送及管理容器镜像。com.apple.container.network.container-network-vmnet):提供网络管理 API,基于 vmnet 框架实现容器网络的创建与管理。com.apple.container.runtime.container-runtime-linux):提供容器运行时管理 API,基于虚拟化框架实现 Linux 容器的创建与管理。核心插件通过 Containerization Framework[5] 提供的 API 进行交互,支持容器化工作负载的创建、管理与网络配置。关于 Containerization Framework 的工作原理,有时间我会单独写一篇文章进行详细介绍。
除内置插件外,container-apiserver 还会从以下目录加载用户插件:
/Users/addo/Library/Application Support/com.apple.container/user-plugins
目前暂无用户插件,但该目录为开发者自定义插件、扩展容器系统功能提供了入口。
参考资料
[1]
Container: https://github.com/apple/container
[2]
Containerization Framework: https://github.com/apple/containerization
[3]
苹果发布 Containerization Framework:开启 macOS 容器化新纪元: https://atbug.com/apple-containerization-framework-macos-release/
[4]
Apple Container 开箱实践: https://atbug.com/apple-container-hands-on/
[5]
Containerization Framework: https://github.com/apple/containerization