Apple 面向 Mac 开发者推出容器机器(Container Machines),让你在 macOS 上直接运行持久化的 Linux 环境用于开发。它基于标准 OCI 镜像构建,容器重启后数据保留,支持 systemd 等 init 系统。
为什么需要容器机器
传统 Docker 容器设计为单进程应用,不适合长时间运行的服务,也不方便你同时在宿主机和容器内操作同一套代码。容器机器则模拟完整 Linux 环境,可运行 postgresql 等系统服务(systemctl start postgresql),还能同时维护多套发行版环境如 alpine、ubuntu、debian。
关键特性是自动用户与主目录映射:macOS 的 $HOME 挂载到容器内的 /home/<用户名>,你的仓库和配置文件在两个系统共享,macOS 编辑器和 IDE 照常使用,同时在 Linux 环境内编译运行,macOS 上的性能分析工具、截图工具、浏览器、图形调试器也能直接访问容器内同一套文件,无需手动同步。
怎么用
核心命令与 Docker 类似但面向环境:container machine create alpine:latest --name dev 创建基于 Alpine 的开发环境,container machine run -n dev 进入交互式 shell,container machine ls 查看所有实例,container machine stop 和 rm 控制生命周期。用 container machine set 调整 CPU 和内存,修改后重启生效,内存默认取宿主机的一半。
如需自定义初始化,可在镜像中加入可执行脚本 /etc/machine/create-user.sh,首次启动时以 root 身份运行,系统会传入 CONTAINER_UID、CONTAINER_GID、CONTAINER_HOME 等变量供配置用户和权限。
这套方案解决了开发者长期在 macOS 与 Linux 环境间「来回切」的痛点——无需虚拟机就能用熟悉的 Mac 工具做开发,同时拥有真正的 Linux 构建与测试环境。
编注:信源为 GitHub 官方文档,侧重工具功能与使用方法,未涉及发布进度与平台兼容性。