Windows版Docker桌面用户手册
预计阅读时间:16分钟
欢迎使用Docker桌面!Windows版Docker桌面用户手册提供了有关如何配置和管理Docker桌面设置的信息。
有关Docker Desktop下载,系统要求和安装说明的信息,请参阅《安装Docker Desktop》。
设定值
该泊坞窗桌面菜单允许您配置泊坞窗设置,如安装,更新,版本渠道,多克尔中心登录等。
本节说明可从“设置”对话框访问的配置选项。
-
通过单击通知区域(或系统托盘)中的Docker图标,打开Docker桌面菜单:
-
选择设置以打开“设置”对话框:
一般的
在“设置”对话框的“常规”选项卡上,您可以配置何时启动和更新Docker。
-
自动检查更新:默认情况下,Docker Desktop配置为自动检查较新版本。如果您作为组织的一部分安装了Docker Desktop,则可能无法自己更新Docker Desktop。在这种情况下,请将您现有的组织升级到团队计划,然后清除此复选框以禁用自动检查更新。
-
登录时启动Docker:选择此选项可在登录Windows机器时自动启动Docker Desktop。
-
在不带TLS的tcp:// localhost:2375上公开守护程序:单击此选项以启用旧版客户端连接到Docker守护程序。您必须谨慎使用此选项,因为在不使用TLS的情况下公开守护程序可能会导致远程执行代码攻击。
-
使用基于WSL 2的引擎:WSL 2提供了比传统Hyper-V后端更好的性能。有关更多信息,请参阅Docker Desktop WSL 2后端。
-
发送使用情况统计信息:默认情况下,Docker Desktop发送诊断,崩溃报告和使用情况数据。此信息可帮助Docker改善应用程序并进行故障排除。清除复选框以退出。Docker可能会定期提示您提供更多信息。
-
显示每周提示:显示有关使用Docker的有用建议。
-
启动时打开Docker Desktop仪表板:启动Docker Desktop时自动打开仪表板。
资源
在资源选项卡允许您配置CPU,内存,磁盘,代理,网络和其他资源。根据您使用的是WSL 2模式的Linux容器,Hyper-V模式的Linux容器还是Windows容器,可以使用不同的配置配置。
先进的
笔记
“高级”选项卡仅在Hyper-V模式下可用,因为在WSL 2模式和Windows容器模式下,这些资源由Windows管理。在WSL 2模式下,您可以配置分配给WSL 2实用程序VM的内存,CPU和交换大小的限制。
使用“高级”选项卡来限制可用于Docker的资源。
-
CPU:默认情况下,Docker Desktop设置为使用主机上可用处理器数量的一半。要提高处理能力,请将其设置为更高的数字;减少,减少数字。
-
内存:默认情况下,Docker Desktop设置为使用
2
GB运行时内存,该内存是从计算机上的总可用内存中分配的。要增加RAM,请将其设置为更大的数字。要减少它,请降低数字。 -
交换:根据需要配置交换文件的大小。默认值为1 GB。
-
磁盘映像大小:指定磁盘映像的大小。
-
磁盘映像位置:指定Linux卷的容器和映像的存储位置。
您也可以将磁盘映像移动到其他位置。如果尝试将磁盘映像移动到已有的映像,则会出现提示询问您是否要使用现有映像或替换现有映像。
文件共享
笔记
“文件共享”选项卡仅在Hyper-V模式下可用,因为在WSL 2模式和Windows容器模式下,Windows将自动共享所有文件。
使用文件共享可允许Windows上的本地目录与Linux容器共享。这对于在运行和测试容器中的代码时在主机上的IDE中编辑源代码特别有用。请注意,对于Windows容器,不需要配置文件共享,而对于Linux容器则不需要。如果目录未与Linux的容器共享你可能会得到file not found
或cannot start service
在运行时错误。请参阅卷安装需要Linux容器共享文件夹。
文件共享设置为:
-
添加目录:单击
+
并导航到要添加的目录。 -
Apply&Restart通过Docker的bind mount(
-v
)功能使目录可用于容器。
共享文件夹,权限和卷装载的提示
与容器仅共享所需的目录。文件共享带来了开销,因为主机上文件的任何更改都需要通知Linux VM。共享太多文件会导致CPU负载过大和文件系统性能下降。
共享文件夹旨在允许在容器中执行应用程序代码时在主机上对其进行编辑。对于诸如缓存目录或数据库之类的非代码项目,如果使用数据卷 (命名卷)或数据容器将它们存储在Linux VM中,则性能会更好。
Docker Desktop为用户,组和其他人0777或a + rwx设置了读取/写入/执行权限。这是不可配置的。请参阅共享卷的数据目录上的权限错误。
Windows向应用程序提供文件系统的不区分大小写的视图,而Linux区分大小写。在Linux上,可以创建2个单独的文件:
test
和Test
,而在Windows上,这些文件名实际上将引用相同的基础文件。这可能会导致应用在开发人员Windows计算机上正常工作(共享文件内容)但在Linux生产环境中运行(文件内容不同)时失败的问题。为避免这种情况,Docker Desktop坚持以原始情况访问所有共享文件。因此,如果创建了一个名为的文件test
,则必须将其打开为test
。尝试打开Test
将失败,并显示“没有此类文件或目录”。同样,一旦test
创建了名为的文件,则尝试创建另一个名为的文件。Test
将失败。
按需共享文件夹
您可以在容器第一次使用特定文件夹时“按需”共享文件夹。
如果您从具有卷挂载的外壳程序运行Docker命令(如下例所示)或启动包含卷挂载的Compose文件,则会弹出一个对话框,询问您是否要共享指定的文件夹。
您可以选择Share it,在这种情况下,它将添加到您的Docker Desktop Shared Folders列表中,并且可用于容器。或者,您可以选择取消来选择不共享它。
代理人
Docker Desktop可让您配置HTTP / HTTPS代理设置,并将其自动传播到Docker。例如,如果您将代理设置设置为http://proxy.example.com
,则Docker在提取容器时会使用此代理。
但是,您的代理设置不会传播到您启动的容器中。如果要为容器设置代理设置,则需要为其定义环境变量,就像在Linux上一样,例如:
> docker run -e HTTP_PROXY=https://proxy.example.com:3128 alpine env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=b7edf988b2b5
TERM=xterm
HOME=/root
HTTP_PROXY=http://proxy.example.com:3128
有关设置运行容器的环境变量的更多信息,请参见设置环境变量。
网络
笔记
在Windows容器模式下,“网络”选项卡不可用,因为网络是由Windows管理的。
您可以配置Docker桌面网络以在虚拟专用网络(VPN)上工作。指定网络地址转换(NAT)前缀和子网掩码以启用Internet连接。
DNS服务器:您可以将DNS服务器配置为使用动态或静态IP寻址。
笔记
一些用户报告了在Docker Desktop上连接到Docker Hub的问题。尝试运行
docker
从Docker Hub提取尚未下载的图像的命令(例如第一次运行)时,这将表现为错误docker run hello-world
。如果遇到这种情况,请重置DNS服务器以使用Google DNS固定地址:8.8.8.8
。有关更多信息,请参见 疑难解答中的网络问题。
更新这些设置需要重新配置并重新启动Linux VM。
WSL整合
在WSL 2模式下,您可以配置哪些WSL 2发行版将与Docker WSL集成。
默认情况下,将在您的默认WSL发行版上启用集成。要更改默认的WSL发行版,请运行wsl --set-default <distro name>
。(例如,要将Ubuntu设置为默认的WSL发行版,请运行wsl --set-default ubuntu
)。
您还可以选择要启用WSL 2集成的任何其他发行版。
有关将Docker Desktop配置为使用WSL 2的更多详细信息,请参阅 Docker Desktop WSL 2后端。
Docker引擎
Docker Engine页面允许您配置Docker守护程序以确定容器的运行方式。
在框中输入JSON配置文件以配置守护程序设置。有关选项的完整列表,请参阅《 Docker Engine dockerd命令行参考》。
单击“应用并重新启动”以保存您的设置并重新启动Docker Desktop。
命令行
在“命令行”页面上,您可以指定是否启用实验性功能。
您可以在Docker Desktop中打开和关闭实验性功能。如果您关闭实验性功能,则Docker Desktop将使用Docker Engine的当前普遍可用版本。
实验功能
实验性功能提供了对未来产品功能的早期访问。这些功能仅用于测试和反馈,因为它们可能在版本之间更改而不会发出警告,或者可以从将来的版本中完全删除。实验功能不得在生产环境中使用。Docker不提供对实验功能的支持。
有关Docker CLI中当前实验功能的列表,请参阅Docker CLI实验功能。
运行docker version
以验证是否已启用实验功能。实验模式在Server
数据下列出。如果Experimental
为true
,则Docker以实验模式运行,如下所示:
> docker version
Client: Docker Engine - Community
Version: 19.03.1
API version: 1.40
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:17:08 2019
OS/Arch: windows/amd64
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 19.03.1
API version: 1.40 (minimum version 1.12)
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:17:52 2019
OS/Arch: linux/amd64
Experimental: true
containerd:
Version: v1.2.6
GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Version: 1.0.0-rc8
GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Version: 0.18.0
GitCommit: fec3683
Kubernetes
笔记
在Windows容器模式下,“ Kubernetes”选项卡不可用。
Docker Desktop包含一个独立的Kubernetes服务器,该服务器可在Windows主机上运行,以便您可以测试在Kubernetes上部署Docker工作负载的情况。要启用Kubernetes支持并安装作为Docker容器运行的Kubernetes独立实例,请选择Enable Kubernetes。
有关将Kubernetes集成与Docker Desktop结合使用的更多信息,请参阅部署在Kubernetes上。
重启
现在,“疑难解答”菜单上提供了“重新启动Docker桌面和重置为出厂默认值”选项。有关信息,请参阅日志和故障排除。
疑难排解
有关更多详细信息,请访问我们的日志和故障排除指南。
登录到我们的Windows版Docker桌面论坛,以获取社区帮助,查看当前用户主题或加入讨论。
在GitHub上登录Windows的Docker Desktop for Windows问题以报告错误或问题并查看社区报告的问题。
有关提供有关文档反馈或自行更新的信息,请参阅“贡献文档”。
在Windows和Linux容器之间切换
从Docker桌面菜单中,您可以切换Docker CLI与之对话的守护进程(Linux或Windows)。选择“切换到Windows容器以使用Windows容器”,或选择“切换到Linux容器以使用Linux容器”(默认设置)。
有关Windows容器的更多信息,请参考以下文档:
-
Windows容器上的Microsoft文档。
-
生成并运行您的第一个Windows Server容器(博客文章) 快速介绍了如何在Windows 10和Windows Server 2016评估版本上构建和运行本机Docker Windows容器。
-
Windows容器入门(实验) 向您展示如何将MusicStore 应用程序与Windows容器一起使用。MusicStore是一个标准的.NET应用程序, 在这里分叉使用容器,它是多容器应用程序的一个很好的示例。
-
若要了解如何从本地主机连接到Windows容器,请参阅 Windows容器的限制
localhost
和已发布的端口
设置对话框随Windows容器而变化
当您切换到Windows容器时,“设置”对话框仅显示那些处于活动状态并应用于Windows容器的选项卡:
如果您在Windows容器模式下设置代理或守护程序配置,则它们仅适用于Windows容器。如果切换回Linux容器,则代理和守护程序配置将返回为Linux容器设置的设置。您的Windows容器设置将保留,并在您切换回时再次可用。
仪表盘
Docker Desktop Dashboard使您可以与容器和应用程序进行交互,并直接从计算机管理应用程序的生命周期。仪表板UI会显示所有正在运行,已停止和已启动的容器及其状态。它提供了一个直观的界面,可以执行常规操作来检查和管理容器以及Docker Compose应用程序。有关更多信息,请参阅Docker Desktop Dashboard。
Docker集线器
从Docker桌面菜单中选择登录/创建Docker ID以访问您的Docker Hub帐户。登录后,您可以直接从Docker Desktop菜单访问Docker Hub存储库。
有关更多信息,请参考以下Docker Hub主题:
两因素验证
Docker Desktop使您可以使用两因素身份验证登录Docker Hub。当访问您的Docker Hub帐户时,两要素身份验证提供了额外的安全层。
您必须先在Docker Hub中启用双重身份验证,然后才能通过Docker Desktop登录到您的Docker Hub帐户。有关说明,请参阅为Docker Hub启用两因素身份验证。
启用两因素身份验证后:
-
转到Docker Desktop菜单,然后选择登录/创建Docker ID。
-
输入您的Docker ID和密码,然后单击登录。
-
成功登录后,Docker Desktop会提示您输入身份验证代码。输入电话中的六位数代码,然后点击验证。
成功通过身份验证后,您可以直接从Docker Desktop菜单访问您的组织和存储库。
添加TLS证书
您可以将受信任的证书颁发机构(CA)添加到Docker守护程序中,以验证注册表服务器证书和客户端证书,以对注册表进行身份验证。
如何添加自定义CA证书?
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应用程序启动时,它将~/.docker/certs.d
Windows系统上的文件夹复制
到/etc/docker/certs.d
Moby(在Hyper-V上运行的Docker Desktop虚拟机)上的目录中。
您需要在对钥匙串或~/.docker/certs.d
目录进行任何更改后重新启动Docker Desktop ,以使更改生效。
该注册表不能被列为不安全的注册表(请参阅
Docker Daemon)。Docker Desktop会忽略不安全注册表中列出的证书,并且不会发送客户端证书。诸如此类的docker run
尝试从注册表中提取的命令会在命令行以及注册表中产生错误消息。
要了解有关如何设置客户端TLS证书进行验证的更多信息,请参阅 Docker Engine主题中的使用证书验证存储库客户端。
接下来要去哪里
-
在“入门”中尝试一下演练。
-
深入研究Docker Labs示例演练和源代码。
-
请参阅《Docker CLI参考指南》。