一年前,苹果在 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 Silicon(M 系列芯片)的 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\--mounttype=bind,source=$(pwd)/data/nginx/conf.d,target=/etc/nginx/conf.d\--mounttype=bind,source=$(pwd)/data/nginx/html,target=/usr/share/nginx/html\nginx:latest# 或简写参数container run\--namenginx-demo\-d\-p8080:80\-eTZ=Asia/Shanghai\-v$(pwd)/data/nginx/conf.d:/etc/nginx/conf.d\nginx# 查看当前运行中的容器container list# 查看详情container inspect<container-id># 要进入容器内部containerexec-it<container-id>/bin/sh# 查看运行日志container logs<container-id># 实时跟踪日志container logs-f<container-id># 停止容器container stop<container-id># 删除容器container delete<container-id>管理镜像
# 查看本地镜像container image list# 删除镜像container image delete<image-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 上的容器运行方式。