Docker Desktop for Windows 的常见问题解答

我可以同时使用 VirtualBox 和 Docker Desktop 吗?

可以,如果您在机器上启用了 Windows Hypervisor Platform 功能,就可以同时运行 VirtualBox 和 Docker Desktop。

为什么需要 Windows 10 或 Windows 11?

Docker Desktop 使用 Windows Hyper-V 功能。虽然旧版 Windows 也有 Hyper-V,但它们的 Hyper-V 实现缺少 Docker Desktop 正常工作所必需的功能。

可以在 Windows Server 上运行 Docker Desktop 吗?

不可以,不支持在 Windows Server 上运行 Docker Desktop。

符号链接(symlinks)在 Windows 上如何工作?

Docker Desktop 支持两种类型的符号链接:Windows 原生符号链接和在容器内创建的符号链接。

Windows 原生符号链接在容器内显示为符号链接,而在容器内创建的符号链接则表示为 mfsymlinks。这些是带有特殊元数据的常规 Windows 文件。因此,在容器内创建的符号链接在容器内显示为符号链接,但在主机上则不是。

与 Kubernetes 和 WSL 2 的文件共享

Docker Desktop 将 Windows 主机文件系统挂载到运行 Kubernetes 的容器内的 /run/desktop 下。 请参阅 Stack Overflow 帖子 了解如何配置 Kubernetes Persistent Volume 以表示主机上的目录的示例。

如何添加自定义 CA 证书?

您可以将受信任的证书颁发机构 (CA) 添加到您的 Docker 守护进程,以验证注册表服务器证书和客户端证书,从而向注册表进行身份验证。

Docker Desktop 支持所有受信任的证书颁发机构 (CA)(根或中间)。Docker 识别存储在“受信任的根证书颁发机构”或“中间证书颁发机构”下的证书。

Docker Desktop 基于 Windows 证书存储创建所有用户受信任 CA 的证书包,并将其附加到 Moby 受信任证书。因此,如果企业 SSL 证书在主机上被用户信任,它也会被 Docker Desktop 信任。

要了解有关如何为注册表安装 CA 根证书的更多信息,请参阅 Docker Engine 主题中的 使用证书验证仓库客户端

如何添加客户端证书?

您可以在 ~/.docker/certs.d/<MyRegistry><Port>/client.cert~/.docker/certs.d/<MyRegistry><Port>/client.key 中添加您的客户端证书。您不需要使用 git 命令推送您的证书。

当 Docker Desktop 应用程序启动时,它会将 Windows 系统上的 ~/.docker/certs.d 文件夹复制到 Moby(在 Hyper-V 上运行的 Docker Desktop 虚拟机)上的 /etc/docker/certs.d 目录。

您需要在对钥匙串或 ~/.docker/certs.d 目录进行任何更改后重新启动 Docker Desktop,以使更改生效。

注册表不能被列为不安全注册表(请参阅 Docker 守护进程)。Docker Desktop 会忽略不安全注册下列出的证书,并且不发送客户端证书。像 docker run 这样尝试从注册表拉取的命令会在命令行和注册表上产生错误消息。

要了解有关如何设置客户端 TLS 证书以进行验证的更多信息,请参阅 Docker Engine 主题中的 使用证书验证仓库客户端