1. 文档概述
本文档旨在详细说明 Docker Desktop for Windows 应用程序中“设置 (Settings)”界面下的所有可配置选项及其子选项。对于每个配置项,我们将提供其功能描述、推荐配置(如适用)以及相关注意事项,帮助用户更好地理解和优化 Docker Desktop 的使用体验。
适用版本: 本文档基于 Docker Desktop 的最新稳定版本撰写,部分特性可能随 Docker Desktop 的更新而有所变化。
2. 进入设置界面
- 在 Windows 任务栏的系统托盘区找到 Docker 图标。
- 右键点击 Docker 图标。
- 选择“Settings”(设置)。
3. 各配置项详细说明
Docker Desktop 的设置界面通常包含以下主要部分:
3.1 General (通用)
此部分包含 Docker Desktop 启动行为、用户体验和基本连接设置。
Start Docker Desktop when you log in (在登录时启动 Docker Desktop)
- 功能: 控制 Docker Desktop 是否在 Windows 用户登录时自动启动。
- 推荐:
- 启用 (√): 如果您经常使用 Docker,建议启用此选项,方便快速启动。
- 禁用 ( ): 如果您不经常使用 Docker,或者希望手动控制启动,可以禁用此选项以减少系统启动时的资源占用。
- 注意事项: 启用此选项可能会略微增加系统启动时间。
Show Welcome Tour (显示欢迎导览)
- 功能: 控制是否在 Docker Desktop 启动时显示首次使用的欢迎导览。
- 推荐: 首次使用时启用,后续可以禁用。
Send usage statistics (发送使用统计数据)
- 功能: 是否允许 Docker Desktop 匿名收集和发送使用数据给 Docker 团队,以帮助改进产品。
- 推荐: 根据个人隐私偏好选择。启用有助于 Docker 改进,禁用则保护隐私。
Enable Docker Compose V2 (启用 Docker Compose V2)
- 功能: 启用或禁用 Docker Compose 的最新版本 (V2)。Docker Compose V2 是一个用 Go 语言重写的版本,它作为 Docker CLI 的一个插件集成,而非独立的可执行文件。
- 推荐: 强烈推荐启用 (√)。V2 提供了更好的性能、更简化的安装(随 Docker Desktop 一起安装)和持续的开发支持。它最终将取代 V1。
- 注意事项: 如果您的项目或脚本明确依赖于 Docker Compose V1 的行为,可能需要谨慎。但对于新项目或迁移,V2 是首选。
Use gRPC FUSE for file sharing (使用 gRPC FUSE 进行文件共享)
- 功能: 启用或禁用 gRPC FUSE 后端用于 WSL2 中的文件共享。gRPC FUSE 是一种高性能文件共享机制,旨在提高从 Windows 主机到 WSL2 虚拟机内部的绑定挂载 (bind mount) 卷的性能。
- 推荐: 强烈推荐启用 (√)。特别是在您需要将大量本地文件(如代码库)挂载到容器中进行开发时,它能显著提高文件操作的性能。
- 注意事项: 仅在使用 WSL2 作为 Docker Desktop 后端时生效。如果遇到兼容性问题,可以尝试禁用,但通常启用能带来更好的体验。
Backup & Restore (备份与恢复)
- 功能: 提供备份和恢复 Docker Desktop 相关数据(如镜像、卷、WSL2 虚拟机状态等)的功能。
- 推荐:
- Backup (备份): 在进行系统大版本升级、Docker Desktop 升级或迁移到新机器之前,建议进行备份。
- Restore (恢复): 用于从备份文件恢复 Docker Desktop 的状态。
- 注意事项: 备份文件通常较大,请确保有足够的存储空间。
Proxy (代理)
- 功能: 配置 Docker Desktop 连接互联网的代理设置。这对于在公司网络或需要通过代理访问外部资源的场景至关重要。
- 子项:
- Use system proxy settings (使用系统代理设置): 默认选项,Docker Desktop 会尝试检测并使用 Windows 系统的代理设置。
- Manual proxy configuration (手动代理配置): 允许您手动输入代理服务器地址和端口。
- Web Proxy (HTTP) (Web 代理 (HTTP)): HTTP 代理服务器地址和端口。
- Secure Web Proxy (HTTPS) (安全 Web 代理 (HTTPS)): HTTPS 代理服务器地址和端口。
- Bypass proxy for these hosts (不通过代理的主机): 允许您指定哪些主机或域名的流量不通过代理。通常用于内部网络资源。
- 推荐: 如果您在公司网络中使用 Docker 且公司有强制代理,请联系您的 IT 部门获取正确的代理设置。
- 注意事项: 配置错误的代理可能导致 Docker 无法拉取镜像或连接外部网络。
WSL Integration (WSL 集成)
- 功能: 管理 Docker Desktop 与 Windows Subsystem for Linux (WSL) 2 的集成。这是 Docker Desktop 在 Windows 上运行容器的推荐后端。
- 子项:
- Enable integration with my default WSL distro (启用与我的默认 WSL 发行版的集成): 启用后,您可以在您的默认 WSL 发行版中直接使用
docker
命令。 - 列表显示已安装的 WSL 发行版: 每个发行版旁边都有一个开关。
- 推荐: 启用 (√) 您希望在其中使用 Docker 命令的所有 WSL2 发行版。
- Enable integration with my default WSL distro (启用与我的默认 WSL 发行版的集成): 启用后,您可以在您的默认 WSL 发行版中直接使用
- 注意事项: 只有 WSL2 发行版才能与 Docker Desktop 集成。WSL1 不支持。启用集成后,相应的 WSL 发行版将能够访问 Docker Desktop 提供的 Docker 守护进程。
Advanced (高级)
- 功能: 通常包含一些实验性或不常用的通用设置。
- 推荐: 除非您明确知道其作用,否则不建议随意更改。
3.2 Resources (资源)
此部分允许您配置分配给 Docker Desktop (即其底层的 WSL2 或 Hyper-V 虚拟机) 的系统资源。
Advanced (高级)
- 功能: 配置 Docker Desktop 后端虚拟机使用的 CPU、内存和磁盘空间。
- 子项:
- Memory (内存): 分配给 Docker Desktop 运行容器和镜像的内存量。
- 推荐: 默认值通常适用于轻量级使用。如果您运行的容器需要大量内存或同时运行多个容器,请适当增加。一般建议将其设置为您系统总内存的 50%-75% 左右,但不要超过 8GB,除非您有特定的需求和充足的系统内存。
- 注意事项: 过多的内存分配可能会导致 Windows 主机系统性能下降。
- CPUs (CPU): 分配给 Docker Desktop 后端虚拟机的 CPU 核心数。
- 推荐: 默认值通常为 2 或 4 个核心。如果您运行的容器是 CPU 密集型任务,可以适当增加。
- 注意事项: 过多的 CPU 分配可能会导致 Windows 主机系统响应变慢。
- Disk image size (磁盘镜像大小): Docker Desktop 用来存储镜像、容器层和卷的虚拟磁盘文件 (
ext4.vhdx
) 的最大大小。- 推荐: 默认通常是 64GB。对于大多数开发工作,这已经足够。如果您经常拉取大量镜像、构建大型镜像或使用大量数据卷,可能需要增加。
- 注意事项: 这是 最大 大小,不代表立即占用这么多空间。文件会随着使用增长,但不会超过此限制。增加此值不会立即占用更多磁盘空间,但会为将来的增长预留空间。
- Disk image location (磁盘镜像位置): Docker Desktop 存储其虚拟磁盘文件 (
ext4.vhdx
) 的路径。- 推荐: 如果您的系统盘空间不足,或者您有更快的 SSD 硬盘,可以将其移动到其他驱动器。
- 注意事项: 更改位置需要重新启动 Docker Desktop,并可能需要一段时间来移动现有数据。
- Memory (内存): 分配给 Docker Desktop 运行容器和镜像的内存量。
WSL Integration (WSL 集成)
- 功能: (与 General 中的 WSL Integration 相同,这里是重复入口,方便用户查看和管理) 管理 Docker Desktop 与 Windows Subsystem for Linux (WSL) 2 的集成。
- 推荐: 同 General 部分。
File Sharing (文件共享)
- 功能: 在使用 Hyper-V 后端时,此选项用于指定哪些 Windows 目录可以作为绑定挂载卷共享给容器。在 WSL2 后端下,文件共享通常由 WSL2 的自动挂载机制和 gRPC FUSE (如果启用) 负责,此选项的可见性可能降低或被替代。
- 子项:
- Add directory (添加目录): 允许您添加特定的 Windows 目录。
- Remove directory (删除目录): 移除已共享的目录。
- 推荐: 仅共享您需要与容器交互的特定目录,以提高安全性和性能。
- 注意事项: 如果使用 WSL2 后端并启用了 gRPC FUSE,通常不需要在此处手动添加共享目录,因为 WSL2 已经可以透明地访问 Windows 文件系统。
3.3 Docker Engine (Docker 引擎)
此部分允许您直接编辑 Docker 守护进程 (dockerd) 的 JSON 配置文件,从而进行更高级的配置。
功能: 显示并允许您编辑
daemon.json
文件。此文件定义了 Docker 守护进程的运行时行为,例如注册表镜像、不安全注册表、日志驱动程序、数据根目录等。常见配置项:
registry-mirrors
: 注册表镜像列表。- 用途: 当您从 Docker Hub 拉取镜像速度较慢时,可以使用国内或企业内部的镜像加速器。
- 配置示例:
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com"] }
- 推荐: 根据您所在的网络环境配置一个或多个国内镜像加速器,可以显著提升镜像拉取速度。
insecure-registries
: 不安全注册表列表。- 用途: 当您需要连接到使用 HTTP 或自签名 HTTPS 证书的私有注册表时。
- 配置示例:
{ "insecure-registries": ["myregistry.example.com:5000"] }
- 推荐: 强烈不推荐在生产环境中使用。仅在开发或测试环境中使用,并确保您了解其安全风险。
data-root
: Docker 数据根目录。- 用途: 更改 Docker 存储所有镜像、容器、卷等数据的物理位置。
- 配置示例:
{ "data-root": "D:\\DockerData" }
- 推荐: 如果您的 C 盘空间不足,或希望将 Docker 数据存储在速度更快的驱动器上,可以修改此路径。
experimental
: 是否启用实验性功能。- 用途: 开启 Docker 守护进程的实验性功能。
- 配置示例:
{ "experimental": true }
- 推荐: 不建议在生产环境启用。在开发或测试环境中,如果您需要尝试 Docker 的最新功能,可以启用。
dns
: DNS 服务器地址。- 用途: 为 Docker 容器配置 DNS 服务器。
- 配置示例:
{ "dns": ["8.8.8.8", "8.8.4.4"] }
- 推荐: 通常不需要手动配置,Docker Desktop 会继承宿主机的 DNS 设置。如果容器内部 DNS 解析有问题,可以尝试手动配置。
Apply & Restart (应用并重启): 任何对
daemon.json
的更改都需要点击此按钮才能生效,Docker Desktop 会自动重启。注意事项: 直接编辑 JSON 文件需要谨慎,错误的配置可能导致 Docker 守护进程无法启动。请确保 JSON 格式正确。
3.4 Builders (建设者)
此部分配置 Docker 构建镜像的工具。
Default builder (默认构建器)
- 功能: 选择 Docker 默认使用的构建工具。目前主要选项是 BuildKit。
- BuildKit: 新一代的 Docker 镜像构建引擎,提供了更好的性能、缓存管理、并行构建和更高级的构建特性(如多阶段构建的并发执行、更好的文件复制优化等)。
- 推荐: BuildKit (√)。它在性能和功能上都优于传统的 Docker Build。
- 注意事项: 确保您的
Dockerfile
与 BuildKit 兼容,尽管大多数情况下是兼容的。
- 功能: 选择 Docker 默认使用的构建工具。目前主要选项是 BuildKit。
Reset build cache (重置构建缓存)
- 功能: 清除 BuildKit 的所有构建缓存。
- 推荐: 当您遇到构建问题,怀疑是缓存导致时,或者需要确保构建是完全干净的时,可以使用此功能。
3.5 Kubernetes (Kubernetes)
此部分允许您在 Docker Desktop 中启用和管理一个本地的 Kubernetes 单节点集群。
Enable Kubernetes (启用 Kubernetes)
- 功能: 勾选此选项以在 Docker Desktop 中安装和启动一个轻量级的 Kubernetes 集群。
- 推荐: 如果您需要本地开发和测试 Kubernetes 应用,请启用此功能。
- 注意事项: 启用 Kubernetes 会增加 Docker Desktop 的资源占用,并需要下载额外的 Kubernetes 镜像。
Show system containers (显示系统容器)
- 功能: 控制在 Docker Dashboard 的“Containers”视图中是否显示 Kubernetes 相关的系统容器(如
kube-proxy
,coredns
等)。 - 推荐: 默认可以禁用,以保持容器列表的整洁。如果您需要调试 Kubernetes 组件,可以启用。
- 功能: 控制在 Docker Dashboard 的“Containers”视图中是否显示 Kubernetes 相关的系统容器(如
Kubernetes version (Kubernetes 版本)
- 功能: 显示当前 Docker Desktop 内置的 Kubernetes 版本。此版本通常与 Docker Desktop 版本捆绑,不能单独升级。
Reset Kubernetes Cluster (重置 Kubernetes 集群)
- 功能: 清除所有 Kubernetes 资源(pods, deployments, services 等)并重置 Kubernetes 集群到初始状态。
- 推荐: 当您在本地 Kubernetes 环境中遇到无法解决的问题,或者希望从一个干净的环境开始时,可以使用此功能。
- 注意事项: 此操作会删除所有部署在本地 Kubernetes 集群中的应用数据。
3.6 Software Updates (软件更新)
此部分管理 Docker Desktop 的软件更新行为。
Check for updates automatically (自动检查更新)
- 功能: 控制 Docker Desktop 是否定期检查新版本。
- 推荐: 启用,以确保您能及时获取最新功能和安全补丁。
Download updates automatically (自动下载更新)
- 功能: 如果启用自动检查更新,此选项控制是否在后台自动下载可用更新。
- 推荐: 启用,可以减少手动下载的时间。
Current version (当前版本)
- 功能: 显示您当前安装的 Docker Desktop 版本号。
Release Notes (发行说明)
- 功能: 链接到 Docker Desktop 官方的发布说明页面,您可以查看每个版本的新功能、改进和修复。
Check Now (立即检查)
- 功能: 手动触发一次更新检查。
3.7 Extensions (扩展)
此部分管理 Docker Desktop 的扩展功能。
Enable Extensions (启用扩展)
- 功能: 勾选此选项以启用 Docker Desktop 扩展功能。
- 推荐: 如果您希望使用 Docker Desktop 提供的各种增强功能,请启用此选项。
Extensions Marketplace (扩展市场)
- 功能: 引导您到 Docker Desktop 的扩展市场,您可以在其中发现和安装各种第三方扩展,例如数据库管理工具、IDE 集成、安全扫描等。
Installed Extensions (已安装扩展)
- 功能: 列出您已安装的所有 Docker Desktop 扩展,并允许您管理它们(如启用/禁用、卸载)。
4. Troubleshoot (故障排除)
尽管“Troubleshoot”不是一个设置配置项,但它是 Settings 界面中非常重要的一部分,用于诊断和解决 Docker Desktop 的问题。
- Restart Docker Desktop (重启 Docker Desktop): 最常见的故障排除步骤,重启 Docker 守护进程。
- Reset to factory defaults (重置为出厂设置): 将 Docker Desktop 的所有设置恢复到初始状态,并删除所有镜像和容器。
- 警告: 这将删除所有本地 Docker 数据!
- Clean / Purge data (清理 / 清除数据): 仅清理 Docker 镜像和容器数据,保留设置。
- Collect diagnostics (收集诊断信息): 收集 Docker Desktop 的诊断日志和系统信息,以便于报告问题给 Docker 支持团队或进行自我诊断。
5. 总结与最佳实践
- 定期更新: 保持 Docker Desktop 最新可以获得最新的功能、性能改进和安全修复。
- 资源合理分配: 根据您的系统硬件和日常工作负载,合理分配 CPU、内存和磁盘资源,避免资源浪费或性能瓶颈。
- 利用 WSL2 后端: 对于 Windows 用户,WSL2 是 Docker Desktop 的推荐后端,可提供更好的性能和更强的兼容性。
- 启用 BuildKit: 使用 BuildKit 进行镜像构建,提升构建效率。
- 配置镜像加速器: 对于国内用户,配置
registry-mirrors
是提升镜像拉取速度的关键。 - 谨慎使用不安全注册表和实验性功能: 了解其风险,仅在必要时使用。
- 熟悉故障排除工具: 遇到问题时,善用“Troubleshoot”中的功能进行诊断和解决。