
一年前苹果在 WWDC25 上正式发布 Containerization Framework并开源了官方容器工具 Container。如今Container 已迎来 1.0 正式版一周岁啦。从最初的预览项目到如今正在成为 Apple Silicon 运行 Linux 容器的重要工具。那么Mac 开发者是否可以真正卸载「 Docker Desktop 」了呢让我们一起深入体验 Apple Container。简介对于 Linux 用户来说容器可以直接运行在系统之上因为它本质上依赖 Linux Kernel。而 macOS 并不具有 Linux Kernel因此无论是 Docker Desktop、OrbStack 还是 Lima本质上都需要先启动一个 Linux 虚拟机再在其中运行容器macOS ↓ Linux VM ↓ ContainersApple Container 则采用了不同的设计方案macOS ├─ VM(Container A)├─ VM(Container B)└─ VM(Container C)为每个容器分配独立的虚拟机而不是让所有容器共享一个 Linux VM。借助 Apple Silicon、Virtualization.framework 和 Containerization Framework 的深度优化在获得接近容器启动速度的同时也提供了虚拟机级别的隔离与安全性。简单来说传统方案是“一个 VM 运行多个容器”而 Apple Container 则是“一个容器对应一个轻量级 VM”。安装系统支持目前仅支持搭载 Apple SiliconM 系列芯片的 Mac并要求系统版本为 macOS 26 版本。获取软件包公 Zhong 号BugShare内发送苹果容器或Apple Container即可获取软件安装包。自动补全生成补全脚本mkdir-p~/.zsh/completion container --generate-completion-scriptzsh\~/.zsh/completion/_container编辑 ~/.zshrc添加以下内容fpath(~/.zsh/completion$fpath)autoload-Ucompinit compinit重新加载source~/.zshrc使用如果你熟悉 Docker会发现 Container 的命令设计非常接近 Docker因此非常容易上手。版本检查安装完成后可以通过以下命令确认是否安装成功container--version启动 Container 服务与 Docker Desktop 不同Container 采用独立的后台服务管理机制首次使用前需要启动服务# 启动服务container system start# 查看服务状态container system status# 停止服务container system stop运行容器首次运行会自动从镜像仓库拉取镜像并启动容器。以 Nginx 为例# 运行容器container run-p8080:80 nginx# 完整示例container run\--namenginx-demo\--detach\--publish8080:80\--mounttypebind,source$(pwd)/data/nginx/conf.d,target/etc/nginx/conf.d\--mounttypebind,source$(pwd)/data/nginx/html,target/usr/share/nginx/html\nginx:latest# 或简写参数container run\--namenginx-demo\-d\-p8080:80\-eTZAsia/Shanghai\-v$(pwd)/data/nginx/conf.d:/etc/nginx/conf.d\nginx# 查看当前运行中的容器container list# 查看详情container inspectcontainer-id# 要进入容器内部containerexec-itcontainer-id/bin/sh# 查看运行日志container logscontainer-id# 实时跟踪日志container logs-fcontainer-id# 停止容器container stopcontainer-id# 删除容器container deletecontainer-id管理镜像# 查看本地镜像container image list# 删除镜像container image deleteimage-name构建镜像Container 同样支持 Dockerfile 文件。# 构建镜像container build.# 指定镜像名称container build-tmyapp:latest.# 直接运行container run myapp:latest创建 Linux 环境除了运行容器之外Container 还提供了 Machine 功能用于创建持久化 Linux 环境。# 创建环境container machine create alpine:latest--namedev# 查看列表container machinels# 进入 Machinecontainer machine run-ndev# 停止container machine stop dev# 删除container machinermdevMachine 更适合Linux 开发环境、编译环境、测试环境、长期运行服务等使用体验类似 WSL2。Docker短期来看 Docker 不会被取代。因为开发者真正依赖的不只是容器更多的是 Compose、Kubernetes、插件生态、调试工具、CI/CD 集成。但从长期来看Apple Container 很可能成为 Apple Silicon 上运行 Linux 容器的标准方案。写在最后之前Mac 开发者一直依赖 Docker Desktop、OrbStack 等第三方来运行容器而 Apple Container 的出现意味着 Mac 原生容器时代正式到来。它不是一个 Docker 替代品更代表着苹果正试图基于 Apple Silicon 和自身虚拟化技术重新定义在 macOS 上的容器运行方式。