ByteNoteByteNote

字节笔记本

2026年6月18日

Apple 开源 container:在 macOS 上用轻量虚拟机跑 Linux 容器

API中转
¥120

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)。

初始安装

  1. 前往 GitHub Releases 页面下载最新的签名安装包。
  2. 双击 .pkg 文件,按提示完成安装,输入管理员密码。
  3. 启动系统服务:
bash
container system start

升级

bash
container system stop
/usr/local/bin/update-container.sh
container system start

降级

bash
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

卸载

bash
# 同时删除用户数据
/usr/local/bin/uninstall-container.sh -d

# 保留用户数据
/usr/local/bin/uninstall-container.sh -k

快速开始

官方建议从"构建并运行一个简单 web 服务器镜像"的引导教程入手:

bash
# 启动服务
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 语法需要重新学习,不能简单替换。

相关链接

分享: