字节笔记本
2026年6月18日
Apple 开源 container:在 macOS 上用轻量虚拟机跑 Linux 容器
Apple 在 GitHub 上开源了一个名为 container 的新工具,目标是在 Mac(Apple silicon)上用轻量级虚拟机来创建和运行 Linux 容器。它与 Docker 最大的不同在于:用 Swift 写成、深度利用 macOS 26 的虚拟化与网络新特性,并且原生支持 OCI 容器镜像,意味着你仍能从 Docker Hub 等标准镜像仓库拉取和推送镜像。
项目简介
container 是 Apple 推出的一款容器运行时工具,仓库地址为 https://github.com/apple/container。它目前处于活跃开发阶段,已收获约 38.7k stars 和 1.1k forks,是 2025 年容器与 Apple 生态交叉领域里颇受关注的开源项目。
该项目使用 Swift 编写(Swift 占比 98.2%),底层依赖 Apple 的 Containerization Swift package 完成容器、镜像和进程管理。换句话说,它把 Linux 容器运行在了 macOS 的轻量 VM 之上,而不是像 Docker Desktop 那样依赖一个更重的 LinuxKit 虚拟机。
核心特性
- Apple silicon 原生优化:代码和运行时都针对 M 系列芯片做了优化。
- OCI 镜像兼容:可直接 pull、run、push 标准 OCI 容器镜像,与 Docker Hub 等仓库互通。
- Swift 实现:几乎完全用 Swift 写成,适合 Swift 开发者研究或二次集成。
- 轻量级虚拟机:每个容器跑在 macOS 虚拟化框架的轻量 VM 里,隔离性更好。
- 系统集成度高:安装后会作为系统服务运行,并通过
container system start/stop管理。 - 命令行驱动:提供一套与 Docker 类似但独立的 CLI,覆盖 build、run、publish 等完整容器生命周期。
技术栈
- Swift:主体语言,占比 98.2%。
- macOS 26 Virtualization.Framework:提供 Apple silicon 上的虚拟化能力。
- Containerization Swift package:Apple 自家底层库,负责容器、镜像、进程管理。
- OCI 镜像规范:保证与现有容器镜像生态兼容。
- gRPC / Protobuf:部分组件通过 Protobuf 与 gRPC 通信(仓库包含
Protobuf.Makefile)。
安装指南
前置要求
- 一台搭载 Apple silicon 的 Mac。
- macOS 26(Apple 官方仅支持该版本,旧版本不在维护范围内)。
- 管理员权限(安装器需要写入
/usr/local)。
初始安装
- 前往 GitHub Releases 页面下载最新的签名安装包。
- 双击
.pkg文件,按提示完成安装,输入管理员密码。 - 启动系统服务:
container system start升级
container system stop
/usr/local/bin/update-container.sh
container system start降级
container system stop
/usr/local/bin/uninstall-container.sh -k # -k 保留用户数据,-d 彻底删除
/usr/local/bin/update-container.sh -v 0.3.0
container system start卸载
# 同时删除用户数据
/usr/local/bin/uninstall-container.sh -d
# 保留用户数据
/usr/local/bin/uninstall-container.sh -k快速开始
官方建议从"构建并运行一个简单 web 服务器镜像"的引导教程入手:
# 启动服务
container system start
# 拉取/构建/运行镜像(具体命令参考官方文档)
container run -p 8080:8080 your-web-server-image更多命令可参考仓库里的完整命令文档(Browse the full command reference)。
使用示例
场景 1:替代 Docker Desktop 跑 Linux 容器
如果你厌倦 Docker Desktop 的体积和资源占用,container 提供了一条更贴近 macOS 原生的路径。它直接复用 Apple 虚拟化框架,理论上 VM 开销更低。
场景 2:在 Swift 项目中嵌入容器能力
因为核心逻辑被打包成 Containerization Swift package,你可以把它当作依赖引入自己的 Swift 项目,实现自定义的容器管理工具或 CI 流水线。
场景 3:学习 macOS 虚拟化与 OCI 运行时
仓库代码量可观且完全开源,是研究 Apple Virtualization.Framework、容器运行时、镜像格式规范的优质素材。
项目现状与注意事项
- 活跃开发中:官方强调目前稳定性仅在 patch 版本之间保证,minor 版本可能引入破坏性变更。
- 仅支持 Apple silicon:Intel Mac 无法运行。
- 仅支持 macOS 26:Apple 明确不维护旧版本 macOS 上的问题。
- 与 Docker 命令不完全相同:虽然概念相似,但 CLI 语法需要重新学习,不能简单替换。
相关链接
- GitHub 仓库:https://github.com/apple/container
- 官方文档:https://apple.github.io/container/documentation/
- 构建指南:仓库根目录
BUILDING.md - 贡献指南:仓库根目录
CONTRIBUTING.md - 许可协议:Apache-2.0