Docker 如何在 Mac 上运行
容器是 Linux 进程,而 macOS 并不是 Linux。因此,无论采用哪种方式在 Mac 上运行 Docker 容器,都需要在 macOS 旁运行一个小型 Linux 系统,并将 docker 命令连接到该系统。docker 命令只是客户端:它向当前 Docker 上下文所指向的引擎发送请求。所以,你可以自行选择提供引擎的应用,同时保留现有的所有脚本、Makefile 和 Compose 文件。
在 macOS 27 上,选择哪款应用比以往更重要。它决定了容器启停速度、空闲内存占用、VPN 和防火墙规则是否适用于容器流量,以及编程智能体能否查看正在运行的内容。Mac 容器应用对比逐一介绍了各个选项;本指南则带你走我们所知最快的上手路径。
在 macOS 27 上安装兼容 Docker 的容器环境
- 检查你的 Mac。 选择 Apple 菜单 › 关于本机:你需要 Apple 芯片以及 macOS 26 或更高版本。在终端中运行
uname -m,Apple 芯片机型会输出arm64。 - 下载并安装。 下载 Oxcart(经过 Apple 公证的磁盘映像,约 215 MiB),打开后将 Oxcart 拖入“应用程序”文件夹。
- 打开 Oxcart。 首次打开时,会显示标准提示,说明 Apple 已检查此应用是否包含恶意软件。设置过程会离线解包并启动引擎,全程无需联网。
- 批准一次管理员授权。 macOS 会请求一次授权来安装 Oxcart 辅助程序,将
docker、docker compose、docker buildx和oxcart链接到/usr/local。如果该位置已有其他应用的工具,Oxcart 会列出双方的版本,并在替换前征求你的同意。 - 选择文件夹访问权限。 选择 Allow 或 Skip,以允许或跳过对桌面、文稿、下载等受保护文件夹的访问。选择 Skip 后,容器将无法使用这些文件夹中的文件;之后可以更改此设置。
- 运行第一个容器。 在终端中运行
docker run --rm alpine echo hello。Oxcart 已创建名为oxcart的 Docker 上下文,可通过docker context ls查看。
先试试这些命令
docker version # client 29.9, server: Oxcart's engine
docker run --rm alpine uname -m # aarch64: native Apple silicon
docker run --rm --platform linux/amd64 alpine uname -m # x86_64, through Rosetta
docker compose up -d --wait # in a project with a compose.yaml
docker buildx build -t myapp . # builds with BuildKit 如果你已有 Compose 项目,docker compose up --wait 会启动项目,并等待所有配置了健康检查的服务达到健康状态。Apple 芯片上的 Compose 指南详细介绍了 amd64 镜像、健康检查和端口。
在 macOS 27 上加快开发迭代
| 方面 | 为你带来的价值 |
|---|---|
| 速度 | docker run --rm 仅需 42 ms,docker stop 仅需 19 ms,停止并删除 20 个容器仅需 77 ms;引擎启动后 0.8 s 即可就绪 |
| 兼容性 | docker CLI、Compose(健康检查、up --wait)、Buildx、Engine API(Testcontainers、docker-py)、Dev Containers CLI,以及容器内的 Docker 套接字 |
| Mac 应用 | 基于 AppKit 的 SwiftUI 界面,采用 Liquid Glass;菜单栏入口;按组显示 Compose 项目及其健康状态;按代码仓库和分支分组显示端口 |
| 编程智能体 | 为 Claude Code、Codex、Cursor 等提供本地 MCP 服务器,默认只读 |
| 安全性 | Developer ID 签名并经过 Apple 公证;经过签名的更新;容器网络链路使用 TLS 1.3;docker login 密码存储在钥匙串中 |
| 网络 | 由 Mac 发起出站连接,因此 VPN 路由、分离式 DNS 以及 Little Snitch 等防火墙均可生效 |
速度数据:Oxcart 0.1.2,2026-10-10,Apple M5 Max,分配 8 个 CPU 和 12 GiB 内存,取五次采样的中位数。对比中的其他运行时于当天稍早在同一台 Mac、使用同一测试工具和 docker 29.4 客户端测量。
让 Mac 始终由你掌控
- 设置过程无需联网:Linux 系统已包含在应用中。
- 不会修改你的 shell 配置文件。
- 如果其他引擎正在响应,不会接管你的 Docker 上下文:只有当前上下文为
default且没有引擎响应时,才会将oxcart设为当前上下文。 - 未经允许,不会替换其他应用的
docker工具;执行 Uninstall(卸载)时会将它们恢复。
保留项目所需的工作流
运行 Compose 服务栈、为部署目标构建镜像,并让编程智能体连接到同一组容器。Oxcart 通过 docker run --privileged 和 Compose 中的 privileged: true 支持特权容器,让需要 Linux 内部更高权限的工作负载融入现有工作流。有关 Kubernetes 开发,请参阅 Mac 上的 Kubernetes。
常见问题
Docker 能在 macOS 27 上运行吗?
可以。通过提供 Linux 引擎的应用,即可在 macOS 27 上运行 Docker 容器。Oxcart 专为搭载 Apple 芯片、运行 macOS 26 或更高版本的 Mac 打造:内置 docker CLI 29.9、Docker Compose 5.6 和 Buildx 0.38,引擎支持 Docker API 1.40 至 1.54。
macOS 27 上的 docker 命令是否绑定某一款应用?
不是。docker 命令是客户端,通过 Docker 上下文与任何兼容 Docker 的引擎通信。Oxcart 安装 docker CLI、Compose 和 Buildx,并通过 oxcart 上下文将它们连接到自己的引擎。Mac 容器应用对比中列出了各个可选应用。
能在 Apple 芯片 Mac 上运行 amd64(x86-64)镜像吗?
可以。Oxcart 通过 Rosetta 运行 amd64 镜像:使用 docker run --platform linux/amd64 …,或在 Compose 文件中设置 platform: linux/amd64。Buildx 也可以构建并加载 amd64 镜像。
Oxcart 支持 Intel Mac 或 macOS 15 吗?
不支持。Oxcart 需要搭载 Apple 芯片、运行 macOS 26 或更高版本的 Mac。
设置过程需要下载任何内容吗?
不需要。Oxcart 运行的 Linux 系统已包含在应用中,设置过程完全无需联网。与其他 Docker 环境一样,首次对新镜像执行 docker pull 或 docker run 时,才会从镜像仓库下载该镜像。
价格是多少?
Oxcart 可免费使用 60 天。之后每位用户、每个主版本收费 $20,无需订阅;次版本和补丁更新免费。
docker 命令提示无法连接 Docker 守护进程,该怎么办?
运行 docker context ls,检查 oxcart 是否为当前上下文;如果不是,运行 docker context use oxcart。如果 Oxcart 显示有关 Container Services 的横幅,请点击其中的 Troubleshoot…(故障排查)。
来源与方法
- 设置步骤:基于已发布的 Oxcart 0.1.3(离线设置、一次管理员授权、一次文件夹访问权限选择,以及
oxcart上下文切换规则)。 - 速度数据:Oxcart 0.1.2 及其内置的 docker 29.9 客户端,2026-10-10,Apple M5 Max,36 GiB 内存,macOS 27.2。
- 兼容性:于 2026-10-10 在 Oxcart 上测试。