在 macOS 上不使用 Docker Desktop 运行 Docker:替代方案、局限性和最佳实践
Docker Desktop 是许多 macOS 用户的首选解决方案,因为它将所有必需组件打包在一个软件包中。但是,如果您不想使用 Docker Desktop,仍然可以使用其他工具在 macOS 上运行 Docker。本文将引导您完成整个过程,解释 macOS 与 Linux(例如 Ubuntu)在运行 Docker 时的不同之处,并重点介绍一些其他注意事项。
为什么推荐使用 Docker Desktop
官方 Docker 文档强烈推荐 macOS 用户使用 Docker Desktop。原因如下:
- 一体化软件包: Docker Desktop 将 Docker Engine、Docker CLI、Docker Compose 和 docker-credential-helper 集成在一个安装程序中。
- 无缝集成:使用 Docker Desktop,您无需担心手动安装或配置其他组件。
- 官方支持: Docker 文档和支持渠道主要面向 macOS 用户的 Docker Desktop。
无需 Docker Desktop 即可运行 Docker
如果您更喜欢轻量级的安装方式,或者出于其他原因想要避免使用 Docker Desktop,可以按照以下步骤操作:
1. 安装 Docker CLI
您可以使用 Homebrew 安装 Docker CLI。打开终端并运行:
brew install docker
2. 使用轻量级虚拟机搭建 Linux 环境
macOS 使用的是 Darwin(基于 BSD)内核,它不支持 Docker 在 Linux 上提供的原生容器化功能(例如命名空间和 cgroups)。为了解决这个问题,你需要一个在后台运行的 Linux 虚拟机 (VM)。
Colima是一款很受欢迎的工具,可以使用 Homebrew 轻松安装:
brew install colima
然后,启动 Colima 以启动 Linux 虚拟机并运行 Docker 守护进程:
colima start
Colima 运行后,Docker CLI 可以与 Linux 环境中的 Docker 守护进程进行通信。
3. 运行 Docker 命令
现在您可以像往常一样执行 Docker 命令。例如,尝试运行 hello-world 镜像:
docker run hello-world
4. 您可能需要的其他工具
与 Docker Desktop 不同,仅安装 Docker CLI 和 Colima 并不会包含许多用户依赖的一些其他工具,例如:
- docker-compose:用于定义和运行多容器 Docker 应用程序。
- docker-credential-helper:管理 Docker 注册表凭据。
如果您需要这些工具,请通过 Homebrew 安装:
brew install docker-compose docker-credential-helper
注意:较新版本的 Docker Compose 可以通过命令与 Docker Desktop 集成docker compose,但如果绕过 Docker Desktop,则可能需要docker-compose单独安装旧版本。
为什么 Docker 能在 Ubuntu 上原生运行
在 Ubuntu(或其他 Linux 发行版)上,Docker CLI 可以无缝运行,因为:
- 原生 Linux 内核: Ubuntu 使用 Linux 内核,该内核本身就通过命名空间和控制组 (cgroups) 等功能支持容器化。
- 直接通信: Docker 守护进程直接在主机系统上运行,无需虚拟机。因此,在 Ubuntu 上安装 Docker CLI 即可满足大多数使用场景。
从本质上讲,Ubuntu 的 Linux 环境已经提供了容器化所需的必要组件,无需虚拟机或额外的设置层。
官方文件是怎么说的
官方Docker 文档明确建议在 macOS 上使用 Docker Desktop,因为它提供了统一的使用体验,所有必需组件都已打包在一起。在 macOS 上,Docker Desktop 是主要支持的方法,因为 macOS 原生系统缺少 Docker 所需的 Linux 内核功能。
如果您选择绕过 Docker Desktop(例如,使用 Colima 或类似的替代方案),官方文档指出您需要手动安装额外的工具(例如docker-compose和docker-credential-helper)。这一额外步骤对于实现 Docker Desktop 提供的全部开箱即用功能至关重要。
结论
虽然 Docker Desktop 是在 macOS 上运行 Docker 最简单、集成度最高的方式,但它并非唯一选择。通过安装 Docker CLI 并使用像 Colima 这样的轻量级虚拟机工具,您也可以在 macOS 上创建一个功能齐全的 Docker 环境。但是,请注意以下事项:
- 内核限制: macOS 本身不支持 Linux 容器化功能,因此需要基于虚拟机的解决方案。
- 其他安装:与 Docker Desktop 不同,仅 CLI 方法不会自动提供诸如
docker-compose和 之类的工具docker-credential-helper;您必须单独安装它们。 - 官方指南: Docker 的官方文档重点介绍了适用于 macOS 的 Docker Desktop,因此采用其他方法需要额外的手动步骤。
通过了解这些差异和要求,您可以选择最适合您工作流程的方法,同时保持设置简洁并满足您的需求。
文章来源:https://dev.to/mochafreddo/running-docker-on-macos-without-docker-desktop-64o