苹果在WWDC 2025期间公开了开源容器工具Container,并在2026年6月正式发布了1.0版本。这款用Swift编写的命令行工具,专为Apple Silicon芯片的Mac打造,采用"每容器一个轻量级虚拟机"的独特架构,支持OCI标准镜像。本文将从实战角度出发,带大家了解Container的工作原理、与Docker Desktop的核心差异,并附上安装部署与日常操作的完整指南。
Container是什么?为什么要用它?
简单来说,container是苹果官方开源的CLI工具,用于在Mac上建立和运行Linux容器。它的底层基于苹果的Swift容器技术套件Containerization,处理低阶容器、映像文件与进程管理。项目地址在GitHub,完全免费且开源。
过去,在Mac上跑Linux容器通常依赖Docker Desktop,它在后台运行一个共享的Linux虚拟机,所有容器都挤在里面。而Apple Container采取了截然不同的思路:为每个容器创建独立的轻量级虚拟机。这种设计让容器之间拥有VM级别的强隔离,只暴露必要的主机资源给容器,像是用一个"原生"的方式在Mac上运行Linux容器。
与Docker Desktop的核心差异
很多开发者会问:Container能不能替代Docker Desktop?先看看两者的对比:
- 运行模式:Docker Desktop是多个容器共享一个Linux VM;Apple Container是每个容器独立一个轻量级VM
- 实现语言:Docker Desktop以Go为主;Apple Container用Swift编写,深度集成macOS
- 生态成熟度:Docker生态丰富,支持Compose编排;Container专注于单容器场景,目前对多容器编排支持有限
- 镜像标准:两者均支持OCI格式,可以从Docker Hub、GitHub Container Registry拉取镜像
- 平台限制:Apple Container仅支持Apple Silicon Mac(M系列芯片)和macOS 26
总的来说,Container更适合本地开发调试、不想运行Docker Desktop重负载后台程序的开发者。如果你的工作流依赖Docker Compose,现阶段还是老老实实用Docker Desktop。
安装与快速上手
环境要求
官方要求Apple Silicon Mac(M1/M2/M3/M4)以及macOS 26。虽然macOS 15也能部分运行,但功能受限,比如容器之间无法通过虚拟网络通信,所以还是建议升级到macOS 26。
安装步骤
去GitHub Release页面下载最新的签名安装包(.pkg),双击安装即可。安装路径在/usr/local,需要管理员权限。
安装完成后,启动系统服务:
container system start首次启动时如果提示没有默认内核,按提示安装即可。这个内核由Kata Containers提供,是轻量级虚拟机容器运行方案。启动成功后,可以检查命令是否可用:
container --help拉取镜像并运行容器
先登录Docker Hub(或其他OCI镜像仓库):
container registry login docker.io然后拉取一个Nginx镜像并运行:
container image pull nginx:latestcontainer run --name web-test --detach --port 8080:80 nginx:latest
注意,Container内置了DNS服务,可以将容器名称解析为IP地址。配置好DNS后,你可以直接用web-test.container-dns这样的域名访问容器,不需要记IP和端口映射。
构建自定义镜像
准备一个简单的Dockerfile:
FROM alpine
CMD ["echo", "Hello from Apple Container"]然后构建并运行:
container build --tag hello-container .
container run --rm hello-container1.0版本的新特性
这次发布的1.0版本有几个值得关注的更新:
- 容器机器(Container Machine):可以创建可保留状态的Linux环境,停止后重新启动,文件系统仍然保留,适合固定开发环境和反复执行的测试任务
- TOML配置文件:取代了原来通过系统属性命令管理设置的方式,配置更直观
- 结构化输出:容器、镜像、网络和存储的查询结果以结构化格式输出,方便CI/CD自动化工具读取
- 文件复制命令:支持在主机和容器之间复制文件,方便交换数据
升级、降级与卸载
升级前先停止服务,再使用内置更新脚本:
container system stop
/usr/local/bin/update-container.sh
container system start卸载保留用户数据:
/usr/local/bin/uninstall-container.sh -k彻底删除用户数据:
/usr/local/bin/uninstall-container.sh -d实战场景与总结
用Container搭建本地开发环境非常顺手。比如拉取PostgreSQL镜像作为开发数据库,再运行你的应用容器,通过DNS域名dev-db.test直连数据库,完全不需要配置端口映射。用它模拟CI环境也很方便,拉取镜像、构建、跑测试,一气呵成。
要注意的是,macOS底层虚拟化机制对动态回收内存的支持有限,长时间运行多个高负载容器后,可能需要重启容器来释放内存。
总的来说,Apple Container是苹果在开源容器领域的一次重要尝试。它把Apple Silicon的硬件虚拟化能力和OCI容器生态结合起来,为Mac开发者提供了一个轻量、原生、开源的容器运行方案。如果你手上正好有M系列芯片的Mac,想尝试一种不同于Docker Desktop的容器体验,不妨装上Container玩一玩。当然,如果你需要部署云服务器跑服务,也可以考虑搭配雨云服务器(优惠码:aabh)使用,本地调试+云端部署的组合会更高效。
评论区: