上一篇说 Windows 自带 Linux 容器了,这篇轮到 Mac。
苹果开源了一个跑 Linux 容器的工具,名字就叫 container。小写,一个词。GitHub 上 5 万星,作者一栏写着 Apple。
名字起得直白,事情得从头讲。容器本质上是 Linux 内核的本事,macOS 的内核听不懂这套。所以 Docker Desktop 在 Mac 上的做法是:先开一台大的 Linux 虚拟机,把你的容器全塞进去。所有容器共用这台虚拟机的 CPU 和内存,像一间大开间住了一屋子人。
Apple 的 container 换了个思路:每跑一个容器,就单独开一台轻量虚拟机。一人一间。每个容器有自己的 IP,只看得见你挂给它的目录。要给 AI Agent 开沙箱,这个架构很对路——Agent 搞坏了什么,坏的是它自己那间,不是整层楼。
用起来跟 Docker 几乎没差别。镜像都是标准 OCI 格式,Docker Hub 上的直接拉,有 Dockerfile 直接 build。三条命令起一个 nginx:
brew install container
container system start
container run -d -p 8080:80 nginx
第一次 start 会问你:没检测到默认内核,装不装?回个 Y。这里有个细节:它下载的内核来自 Kata Containers,另一个开源项目。苹果自己的容器工具,地基是别人家打的,下载地址就写在提示里。
今年 6 月的 1.0 版多了个东西,叫 container machine,可以理解成 Mac 版的 WSL。用户名跟 Mac 上一样,家目录就是你的家目录,你在哪个目录进去,Linux 里就在哪个目录。Mac 上改代码,Linux 里编译,关机再开,东西都在。
但丝滑是有代价的,这笔账 Apple 自己写在文档里:machine 拆了不少墙。家目录以读写方式挂进去;SSH agent 直接转发进去,机器里跑的任何东西都能借你的身份操作 git;sudo 不要密码;Linux 权限全开。Apple 的原话是,跑 machine 更接近「直接在 Mac 上跑一个程序」,而不是跑一个容器。所以 machine 里只放信得过的镜像,这句是认真的。
几条使用上的实话。
容器里释放的内存,不会还给 macOS。虚拟机有项叫内存气球的技术,能把不用的内存还给宿主机,macOS 只支持了一半。Apple 文档自己给的建议:重负载跑久了,偶尔重启容器。
没有 Compose,多服务项目只能一个一个起。1.2 之后多了个 k8s 插件,本地一键起 Kubernetes 集群,算给了一半答案。
只支持 Apple 芯片,正式支持 macOS 26。macOS 15 能凑合跑,但官方明说:问题只要不能在 26 上复现,就不修。
还有一条:8 月的 1.2.0 一次修了五个安全问题,其中一个能靠 build 时塞 symlink 读到构建上下文之外的宿主文件。现在最新是 1.5,9 月 29 日发的,别停在老版本。
Docker Desktop 先别卸,生态还是它全。但 Mac 上跑容器,头一回有了官方选项,而且「一个容器一间单间」这个架构,跟传统做法是真的不一样。
你 Mac 上跑容器用的是 Docker Desktop,OrbStack 还是 Colima?评论区聊聊👇
#Mac #macOS #苹果 #Docker #容器
讨论回复
加载中...正在加载回复...
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。