📌 项目地址apple/container | ⭐ 29,217 颗星 | 🔧 Swift | 📜 未标注

项目简介

container 是苹果官方(Apple)开发的一款开源工具,专门用于在 Mac(Apple Silicon)上创建和运行 Linux 容器。它的底层使用 macOS 虚拟化技术,将每个容器当作一台轻量级虚拟机来运行,而非传统意义上的共享内核容器。工具由 Swift 编写,并针对 M 系列芯片做了深度优化。

它与 OCI(Open Container Initiative)镜像标准兼容,因此你可以从 Docker Hub、GitHub Container Registry 等任何标准容器仓库拉取和推送镜像,生成的镜像也能在其他 OCI 兼容的运行时中运行。核心的容器管理逻辑依赖于苹果开源的 Containerization Swift 包。

安装与使用

硬件与系统要求

  • 必须使用 Apple Silicon 芯片的 Mac(M1、M2、M3 等系列)。
  • 操作系统必须为 macOS 26(新版本,苹果官方在 2025 年发布),因为 container 利用了该版本新增的虚拟化和网络增强功能。不兼容旧版 macOS。

安装步骤

  1. GitHub Release 页面 下载最新的签名安装包(.pkg)。
  2. 双击安装包,按提示输入管理员密码,安装文件会被放入 /usr/local 目录。
  3. 启动系统服务:
container system start

系统服务启动后,即可使用 container 创建和管理容器。详细的入门教程请参考官方 guided tour,那里演示了如何构建、运行和发布一个简单的 Web 服务器镜像。

升级与降级

停止当前服务:

container system stop

升级到最新版:

/usr/local/bin/update-container.sh

降级(例如降到 0.3.0 版本):

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

卸载

保留用户数据:

/usr/local/bin/uninstall-container.sh -k

同时删除用户数据:

/usr/local/bin/uninstall-container.sh -d

与同类工具的关键区别

目前 Mac 上运行 Linux 容器的常见方案包括:

  • Docker Desktop:使用 macOS 的 Hypervisor.framework,通过 LinuxKit 虚拟机运行容器,性能较好但资源占用高,且依赖 Docker 专有引擎。
  • OrbStack:主打轻量、快速启动,使用原生虚拟化,兼容 Docker CLI,但在 OCI 标准支持上完全对齐。
  • Podman:通过 Podman Machine 创建 Linux 虚拟机,支持 rootless,但配置稍复杂,且对 Apple Silicon 的优化程度不一。

container 的独特之处在于:

  1. 苹果官方出品,天然适配 macOS 26 的最新虚拟化 API,未来维护和更新有保障。
  2. 每个容器运行在独立的轻量级虚拟机,隔离性更强,比共享内核的容器安全性更高(传统容器共享宿主机内核,而 container 的每个容器有独立内核)。
  3. OCI 标准兼容,可直接拉取 Docker Hub 上的镜像,无需额外转换。
  4. Swift 实现,对苹果生态开发者更友好,易于扩展和集成。

不过,container 目前仍处于早期阶段(0.x),功能尚未完善,且仅支持 macOS 26 及以上版本,无法在 Intel Mac 或旧版系统上使用。

注意事项

  • 仅限 Apple Silicon:Intel Macs 无法运行,官方明确表示不支持。
  • 仅限 macOS 26:旧版 macOS 不能安装或运行,官方不会为旧系统提供兼容修复。
  • 管理员权限:安装和启动服务需要输入 sudo 密码,因为文件写入 /usr/local 并启动系统服务。
  • 用户数据存储:卸载脚本提供了 -k(保留数据)和 -d(删除数据)选项,重装后用户数据是否保留取决于你的选择。
  • 许可证:项目采用开源协议(具体见仓库 LICENSE 文件),但注意 OCI 镜像的版权由各自镜像提供方决定。

如果你正在使用 macOS 26 且对容器隔离性有更高要求,或者希望体验苹果原生虚拟化方案,container 值得一试。对于仍在使用 macOS 25 或 Intel Mac 的用户,请等待官方扩展支持,或继续使用 Docker Desktop、OrbStack 等成熟方案。

这篇文章对你有帮助吗?

发表回复