更改 Mac 上的 Docker Desktop 设置

此页面提供有关如何配置和管理您的 Docker Desktop for Mac 设置的信息。

要导航到 **设置**,您可以:

  • 选择 Docker 菜单 鲸鱼菜单,然后选择 **设置**
  • 从 Docker 仪表板中选择 **设置** 图标。

您也可以在 ~/Library/Group Containers/group.com.docker/settings.json 找到 settings.json 文件。

一般

在 **常规** 选项卡中,您可以配置 Docker 启动时间并指定其他设置。

  • **登录计算机时启动 Docker Desktop**。选择此选项可在登录您的计算机时自动启动 Docker Desktop。

  • **Docker Desktop 启动时打开 Docker 仪表板**。选择此选项可在启动 Docker Desktop 时自动打开仪表板。

  • **为 Docker Desktop 选择主题**。选择是否要将 **浅色** 或 **深色** 主题应用于 Docker Desktop。或者,您可以将 Docker Desktop 设置为 **使用系统设置**。

  • **选择容器终端**。确定从容器中打开终端时启动哪个终端。如果您选择集成终端,则可以直接从 Docker 仪表板在正在运行的容器中运行命令。有关更多信息,请参阅 探索容器

  • **默认情况下启用 Docker 调试**。选中此选项以在访问集成终端时默认情况下使用 Docker 调试。有关更多信息,请参阅 探索容器

  • **将虚拟机包含在 Time Machine 备份中**。选择此选项以备份 Docker Desktop 虚拟机。此选项默认情况下处于关闭状态。

  • **使用 containerd 拉取和存储镜像**。启用 containerd 镜像存储。这带来了新的功能,例如通过延迟拉取镜像来加快容器启动速度,以及能够使用 Docker 运行 Wasm 应用程序。有关更多信息,请参阅 containerd 镜像存储

  • **使用虚拟化框架**。选择此选项以允许 Docker Desktop 使用 virtualization.framework 而不是 hypervisor.framework

    提示

    启用此设置可使 Docker Desktop 运行得更快。

  • **为您的容器选择文件共享实现**。选择是否要使用 **VirtioFS**、**gRPC FUSE** 或 **osxfs** 共享文件。VirtioFS 仅适用于 macOS 12.5 及更高版本,默认情况下处于启用状态。

    提示

    使用 VirtioFS 进行快速文件共享。VirtioFS 将完成文件系统操作所需的时间缩短了 高达 98%

  • **在 Apple Silicon 上使用 Rosetta 进行 x86_64/amd64 模拟**。启用 Rosetta 以加速 Apple Silicon 上的 x86/AMD64 二进制模拟。此选项仅在您在 **常规** 设置选项卡中启用了 **虚拟化框架** 时才可用。您还必须使用 macOS Ventura 或更高版本。

  • **发送使用情况统计信息**。选择此选项可让 Docker Desktop 发送诊断信息、崩溃报告和使用情况数据。此信息有助于 Docker 改善和调试应用程序。清除复选框以选择退出。Docker 可能会定期提示您提供更多信息。

  • **使用增强型容器隔离**。选择此选项以通过阻止容器破坏 Linux 虚拟机来增强安全性。有关更多信息,请参阅 增强型容器隔离

    注意

    此设置仅在您登录 Docker Desktop 并且拥有 Docker Business 订阅时才可用。

  • **显示 CLI 提示**。在 CLI 中运行 Docker 命令时显示 CLI 提示和技巧。默认情况下处于启用状态。要在 CLI 中启用或禁用 CLI 提示,请将 DOCKER_CLI_HINTS 分别设置为 truefalse

  • **SBOM 索引**。启用此选项后,检查 Docker Desktop 中的镜像将显示一个 **开始分析** 按钮,选中该按钮后,将使用 Docker Scout 分析镜像。

  • **启用后台 SBOM 索引**。启用此选项后,Docker Scout 将自动分析您构建或拉取的镜像。

  • **自动检查配置**。定期检查您的配置,以确保没有其他应用程序做出意外更改。

    Docker Desktop 会检查您在安装过程中配置的设置是否已被 Orbstack 等外部应用程序更改。Docker Desktop 会检查

    • Docker 二进制文件到 /usr/local/bin 的符号链接。
    • 默认 Docker 套接字的符号链接。此外,Docker Desktop 确保在启动时将上下文切换到 desktop-linux

    如果发现更改,您会收到通知,并且可以直接从通知中恢复配置。有关更多信息,请参阅 常见问题解答

资源

**资源** 选项卡允许您配置 CPU、内存、磁盘、代理、网络和其他资源。

高级

在 **高级** 选项卡中,您可以限制可用于 Docker Linux 虚拟机的资源。

高级设置包括

  • **CPU 限制**。指定 Docker Desktop 可使用的最大 CPU 数量。默认情况下,Docker Desktop 设置为使用主机上可用的所有处理器。

  • **内存限制**。默认情况下,Docker Desktop 设置为使用高达 50% 的主机内存。要增加 RAM,请将其设置为更高的数字;要减小它,请降低数字。

  • **交换**。根据需要配置交换文件大小。默认值为 1 GB。

  • **虚拟磁盘限制**。指定磁盘映像的最大大小。

  • **磁盘映像位置**。指定存储容器和镜像的 Linux 卷的位置。

    您也可以将磁盘映像移动到其他位置。如果您尝试将磁盘映像移动到已经存在磁盘映像的位置,系统会询问您是否要使用现有映像或替换它。

提示

如果您感觉 Docker Desktop 开始变慢,或者您正在运行多容器工作负载,请增加内存和磁盘映像空间分配。

  • **资源节约器**。启用或禁用 资源节约器模式,该模式通过在 Docker Desktop 空闲时(即没有容器运行)自动关闭 Linux 虚拟机来显着降低主机上的 CPU 和内存使用率。

    您也可以配置资源节约器超时,它指示 Docker Desktop 应该在资源节约器模式启动之前处于空闲状态的时间。默认值为 5 分钟。

    注意

    当容器运行时,将自动退出资源节约器模式。退出可能需要几秒钟(约 3 到 10 秒),因为 Docker Desktop 会重新启动 Linux 虚拟机。

文件共享

使用文件共享允许您的计算机上的本地目录与 Linux 容器共享。这对于在主机上使用 IDE 编辑源代码并在容器中运行和测试代码特别有用。

同步文件共享

同步文件共享是一种替代文件共享机制,它提供快速灵活的主机到虚拟机文件共享,通过使用同步文件系统缓存来提高绑定挂载性能。适用于 Pro、Team 和 Business 订阅。

要了解更多信息,请参阅 同步文件共享

虚拟文件共享

默认情况下,/Users/Volumes/private/tmp/var/folders 目录是共享的。如果您的项目位于该目录之外,则必须将其添加到列表中,否则您可能会在运行时收到 挂载被拒绝无法启动服务 错误。

文件共享设置包括

  • **添加目录**。选择 + 并导航到要添加的目录。

  • **删除目录**。选择要删除的目录旁边的 -

  • **应用并重新启动** 使目录可用于使用 Docker 绑定挂载 (-v) 功能的容器。

有关共享文件夹、权限和卷挂载的提示

  • 仅与容器共享您需要的目录。文件共享会引入开销,因为对主机上的文件的任何更改都需要通知到 Linux 虚拟机。共享过多文件会导致 CPU 负载过高和文件系统性能下降。
  • 共享文件夹旨在允许在主机上编辑应用程序代码,同时在容器中执行代码。对于非代码项(如缓存目录或数据库),如果它们存储在 Linux 虚拟机中,使用 数据卷(命名卷)或 数据容器,则性能会好得多。
  • 如果您将整个主目录共享到容器中,MacOS 可能会提示您允许 Docker 访问主目录的个人区域,例如您的提醒或下载。
  • 默认情况下,Mac 文件系统区分大小写,而 Linux 区分大小写。在 Linux 上,可以创建两个不同的文件:testTest,而在 Mac 上,这些文件名实际上引用同一个底层文件。这会导致应用程序在开发人员的机器上正常运行(文件内容共享),但在 Linux 上的生产环境中运行时失败(文件内容不同)。为了避免这种情况,Docker Desktop 要求所有共享文件都以其原始大小写访问。因此,如果创建了一个名为 test 的文件,则必须以 test 的形式打开它。尝试打开 Test 将会导致错误“没有此类文件或目录”。类似地,一旦创建了一个名为 test 的文件,尝试创建另一个名为 Test 的文件将失败。

有关更多信息,请参见 卷挂载需要为任何/Users之外的项目目录进行文件共享

代理

Docker Desktop on Mac 支持使用 HTTP/HTTPS 和 SOCKS5 代理.

HTTP/HTTPS 代理可以在以下情况使用

  • 登录 Docker
  • 拉取或推送镜像
  • 在镜像构建期间获取工件
  • 容器与外部网络交互
  • 扫描镜像

如果主机使用 HTTP/HTTPS 代理配置(静态或通过代理自动配置 (PAC)),Docker Desktop 会读取此配置并自动使用这些设置登录 Docker,以及拉取和推送镜像以及容器 Internet 访问。如果代理需要授权,则 Docker Desktop 会动态地要求开发人员提供用户名和密码。所有密码都安全地存储在操作系统凭据存储中。请注意,仅支持 Basic 代理身份验证方法,因此建议使用 https:// URL 为您的 HTTP/HTTPS 代理,以便在网络传输过程中保护密码。Docker Desktop 在与代理通信时支持 TLS 1.3。

要为 Docker Desktop 设置不同的代理,请打开手动代理配置并输入一个 http://proxy:porthttps://proxy:port 格式的单个上游代理 URL。

要防止开发人员意外更改代理设置,请参见 设置管理.

用于扫描镜像的 HTTPS 代理设置使用 HTTPS_PROXY 环境变量设置。

注意

如果您使用的是托管在 Web 服务器上的 PAC 文件,请确保为服务器或网站上的 .pac 文件扩展名添加 MIME 类型 application/x-ns-proxy-autoconfig。没有此配置,PAC 文件可能无法正确解析。

网络

Docker Desktop 使用私有 IPv4 网络提供内部服务,例如 DNS 服务器和 HTTP 代理。如果 Docker Desktop 选择的子网与您环境中的 IP 冲突,您可以使用网络设置指定自定义子网。

您还可以选择使用内核网络进行 UDP 设置。这使您可以为 UDP 使用更有效的内核网络路径。这可能与您的 VPN 软件不兼容。

Docker Engine

Docker Engine 选项卡允许您配置用于使用 Docker Desktop 运行容器的 Docker 守护程序。

您可以使用 JSON 配置文件配置守护程序。以下是文件的外观

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false
}

您可以在 $HOME/.docker/daemon.json 找到此文件。要更改配置,可以直接从 Docker Desktop 中的仪表板编辑 JSON 配置,或使用您喜欢的文本编辑器打开并编辑该文件。

要查看所有可能的配置选项列表,请参见 dockerd 命令参考.

选择应用并重启以保存您的设置并重启 Docker Desktop。

构建器

如果您已启用 Docker Desktop 构建视图,则可以使用构建器选项卡检查和管理 Docker Desktop 设置中的构建器。

检查

要检查构建器,请找到要检查的构建器并选择展开图标。您只能检查活动的构建器。

检查活动构建器将显示

  • BuildKit 版本
  • 状态
  • 驱动程序类型
  • 支持的功能和平台
  • 磁盘使用量
  • 端点地址

选择不同的构建器

所选构建器部分显示所选构建器。要选择不同的构建器

  1. 可用构建器下找到要使用的构建器
  2. 打开构建器名称旁边的下拉菜单。
  3. 选择使用以切换到此构建器。

您的构建命令现在默认使用所选构建器。

创建构建器

要创建构建器,请使用 Docker CLI。请参见 创建一个新的构建器

删除构建器

如果满足以下条件,您可以删除构建器

要删除构建器

  1. 可用构建器下找到要删除的构建器
  2. 打开下拉菜单。
  3. 选择删除以删除此构建器。

如果构建器使用 docker-containerkubernetes 驱动程序,则构建缓存也将与构建器一起删除。

停止和启动构建器

使用 docker-container 驱动程序 的构建器在容器中运行 BuildKit 守护程序。您可以使用下拉菜单启动和停止 BuildKit 容器。

运行构建会自动启动容器(如果它已停止)。

您只能使用 docker-container 驱动程序启动和停止构建器。

Kubernetes

Docker Desktop 包含一个独立的 Kubernetes 服务器,以便您可以测试将 Docker 工作负载部署到 Kubernetes 上。要打开 Kubernetes 支持并安装一个作为 Docker 容器运行的独立 Kubernetes 实例,请选择启用 Kubernetes

选择显示系统容器(高级)以在使用 Docker 命令时查看内部容器。

选择重置 Kubernetes 集群以删除所有堆栈和 Kubernetes 资源。

有关使用 Docker Desktop 与 Kubernetes 集成的更多信息,请参见 在 Kubernetes 上部署.

软件更新

软件更新选项卡会通知您 Docker Desktop 的任何可用更新。如果有新更新,您可以选择立即下载更新,或者选择发行说明选项以了解更新版本中包含的内容。

通过清除自动检查更新复选框来关闭更新检查。这将禁用 Docker 菜单中的通知以及 Docker 仪表板上显示的通知徽章。要手动检查更新,请选择 Docker 菜单中的检查更新选项。

要允许 Docker Desktop 在后台自动下载新更新,请选择始终下载更新。这会在更新可用时下载更新版本的 Docker Desktop。下载更新后,选择应用并重启以安装更新。您可以通过 Docker 菜单或 Docker 仪表板中的更新部分执行此操作。

扩展

使用扩展选项卡

  • 启用 Docker 扩展
  • 仅允许通过 Docker Marketplace 分发的扩展
  • 显示 Docker 扩展系统容器

有关 Docker 扩展的更多信息,请参见 扩展.

开发中的功能

功能控制选项卡中,您可以控制Beta 功能实验性功能的设置。

您也可以注册 开发者预览计划开发中功能选项卡。

Beta 功能

Beta 功能提供对未来产品功能的访问。这些功能仅用于测试和反馈,因为它们可能会在版本之间发生更改,恕不另行通知,或者完全从未来的版本中删除。Beta 功能不得用于生产环境。Docker 不提供对 Beta 功能的支持。

实验性功能

实验性功能选项卡中,您可以选择允许功能标志。这些是 Docker 目前正在试验的功能。默认情况下,此选项已打开。

这些功能仅用于测试和反馈,因为它们可能会在版本之间发生更改,恕不另行通知,或者完全从未来的版本中删除。Docker 不提供对实验性功能的支持。

通知

使用通知选项卡打开或关闭以下事件的通知

  • 任务和进程的状态更新
  • Docker 公告
  • Docker 调查

默认情况下,所有通知都已打开。您将始终收到错误通知以及有关新 Docker Desktop 版本和更新的通知。

通知会短暂地出现在 Docker 仪表板的右下角,然后移至通知抽屉。要打开通知抽屉,请选择 notifications

高级

高级选项卡中,您可以重新配置初始安装设置

  • 选择如何配置 Docker CLI 工具的安装.

    • 系统:Docker CLI 工具安装在系统目录下的 /usr/local/bin
    • 用户:Docker CLI 工具安装在用户目录下的 $HOME/.docker/bin 中。然后,您必须将 $HOME/.docker/bin 添加到您的 PATH。要将 $HOME/.docker/bin 添加到您的路径
      1. 打开您的 shell 配置文件。如果您使用的是 bash shell,则为 ~/.bashrc,如果您使用的是 zsh shell,则为 ~/.zshrc
      2. 复制并粘贴以下内容
        $ export PATH=$PATH:~/.docker/bin
        
      3. 保存并关闭文件。重启 shell 以将更改应用于 PATH 变量。
  • 启用默认 Docker 套接字(需要密码)。创建 /var/run/docker.sock,某些第三方客户端可能使用它与 Docker Desktop 通信。有关更多信息,请参见 macOS 的权限要求.

  • 启用特权端口映射(需要密码)。启动特权助手进程,该进程绑定 1 到 1024 之间的端口。有关更多信息,请参见 macOS 的权限要求.

    有关每个配置和用例的更多信息,请参见 权限要求.