Container Machine:Apple 推出的 Mac 上高度集成的持久化 Linux 环境

Apple 最近在开源项目 container 中引入了 Container Machine 功能,这是一个专为 macOS(尤其是 Apple Silicon)设计的高集成度 Linux 环境。它让开发者能在 Mac 上快速获得一个接近真实 Linux 机器的体验,同时与 macOS 无缝融合。

Container Machine:Apple 推出的 Mac 上高度集成的持久化 Linux 环境

什么是 Container Machine?

Container Machine 不是传统的“一次性”应用容器,而是以完整 Linux 环境为模型的持久化容器。它基于标准 OCI 镜像(你可以从 Docker Hub 或其他注册表拉取),每个 Machine 运行镜像自带的 init 系统(如 systemd),支持注册长期服务、安装系统级工具,并提供持久化存储。

核心亮点在于主机集成

  • 自动将你的 macOS 用户名和 Home 目录映射到容器内。
  • 你的代码仓库、配置文件(dotfiles)在 macOS 和 Linux 环境中共享,无需复制。
  • 支持编辑在 Mac、构建/运行在 Linux 的流畅 workflow。

为什么需要 Container Machine?

传统容器更适合运行单个应用,而 Container Machine 则模拟一台完整的 Linux 机器:

  • 编辑在 Mac,构建在 Linux:用 Xcode、VS Code 等 Mac 原生 IDE 编辑代码,在容器内编译、测试。
  • Mac 工具直接访问 Linux 产物:性能分析器、浏览器、GUI 调试工具无需文件拷贝即可查看容器内生成的文件。
  • 真实系统服务测试:可以运行 systemctl start postgresql 等,模拟生产环境。
  • 多发行版并存:轻松创建 Alpine、Ubuntu、Debian 等不同环境的 Machine,它们共享同一个 Home 目录和 dotfiles,便于跨发行版测试。

快速上手

安装 Apple 的 container 工具后(从 GitHub Releases 下载),使用以下命令即可创建并使用:

创建一个基于 Alpine 的 Machine

container machine create alpine:latest --name dev

运行命令(如果已停止会自动启动)

container machine run -n dev whoami # 显示你的 macOS 用户名(非 root)
container machine run -n dev pwd # 显示 /home/你的用户名(Mac Home 已挂载)
container machine run -n dev # 进入交互式 Shell

常用操作:

  • container machine ls:列出所有 Machine
  • container machine set-default dev:设置默认 Machine(后续可省略 -n
  • container machine stop/rm:停止或删除
  • container machine set -n dev cpus=4 memory=8G:调整资源(下次启动生效)

container machine 有别名 m,所以 m lsm run 等更简洁。

Container Machine:Apple 推出的 Mac 上高度集成的持久化 Linux 环境

自定义镜像

任何包含 /sbin/init 的 Linux 镜像都可以作为 Container Machine 使用。官方文档提供了一个 Ubuntu 24.04 + systemd 的示例 Dockerfile,包括必要的初始化和掩码服务。

你还可以在镜像中放置 /etc/machine/create-user.sh 脚本来定制首次启动时的用户配置。

技术背景

Apple 的 container 工具使用 Swift 编写,基于开源Containerization 框架和 macOS 的 Virtualization.framework,为每个容器/ Machine 提供轻量级独立 VM。这种架构带来更好的隔离性、安全性和隐私保护,同时启动速度快、资源占用低。

Container Machine 是该项目近期的重要新增功能,特别适合需要稳定 Linux 开发环境的开发者、跨平台测试人员,以及希望深度集成 macOS 工作流的工程师。

总结

Container Machine 填补了 macOS 上“轻量持久 Linux 环境”的空白。它不像完整 VM 那样笨重,也不像传统容器那样缺乏系统级持久化,而是提供了既快又集成的中间方案,让 Mac 开发者能更舒适地处理 Linux 相关工作。

推荐前往 Apple/container GitHub 查看完整文档和最新发布,亲自尝试一下这个“Mac 上的 Linux 机器”。

如果你是开发者,这可能是 2026 年 WWDC 后最值得关注的 Mac 开发工具之一!

置顶文章
推荐文章
最新文章
热门标签
相关文章

相关软件

最新软件

推荐软件