开始使用Docker for Windows
预计阅读时间:17分钟
欢迎使用适用于Windows的Docker Desktop!
Docker是一个用于创建容器化应用程序的完整开发平台,而Docker Desktop for Windows是_在Windows上_开始使用Docker的最佳方式。
测试您的安装
-
打开终端窗口(命令提示符或PowerShell,_但不是_PowerShell ISE)。
-
运行
docker --version
以确保您拥有受支持的Docker版本:docker --versionDocker version 18.03.0-ce, build 0520e24
-
从Docker Hub中拉出hello-world图像并运行一个容器:
docker run hello-worlddocker : Unable to find image 'hello-world:latest' locally ...latest: Pulling from library/hello-world ca4f61b1923c: Pulling fs layer ca4f61b1923c: Download complete ca4f61b1923c: Pull complete Digest: sha256:97ce6fa4b6cdc0790cda65fe7290b74cfebd9fa0c9b8c38e979330d547d22ce1 Status: Downloaded newer image for hello-world:latestHello from Docker! This message shows that your installation appears to be working correctly. ...
-
列出从Docker Hub下载的
hello-world
映像:docker image ls
-
列出
hello-world
容器(显示“来自Docker的Hello!”后退出):docker container ls --all
-
通过运行一些帮助命令来探索Docker帮助页面:
docker --help docker container --help docker container ls --help docker run --help
探索应用程序
在本节中,我们通过运行更复杂的东西(如操作系统和Web服务器)来演示Dockerized应用程序的易用性和强大功能。
-
拉出Ubuntu操作系统的映像并在生成的容器中运行交互式终端:
docker run --interactive --tty ubuntu bashdocker : Unable to find image 'ubuntu:latest' locally ...latest: Pulling from library/ubuntu 22dc81ace0ea: Pulling fs layer 1a8b3c87dba3: Pulling fs layer 91390a1c435a: Pulling fs layer ... Digest: sha256:e348fbbea0e0a0e73ab0370de151e7800684445c509d46195aef73e090a49bd6 Status: Downloaded newer image for ubuntu:latest
-
你在容器里。在根
#
提示符下,检查hostname
容器:root@8aea0acb7423:/# hostname 8aea0acb7423
请注意,主机名被指定为容器ID(并且也在提示中使用)。
-
使用
exit
命令退出shell(这也会停止容器):root@8aea0acb7423:/# exit
-
使用该
--all
选项列出容器(因为没有容器正在运行)。所述
hello-world
容器(随机命名,relaxed_sammet
)显示其消息之后停止。该ubuntu
容器(随机命名的,laughing_kowalevski
当你退出容器)停止。docker container ls --allCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8aea0acb7423 ubuntu "bash" 2 minutes ago Exited (0) 2 minutes ago laughing_kowalevski 45f77eb48e78 hello-world "/hello" 3 minutes ago Exited (0) 3 minutes ago relaxed_sammet
-
拉动并运行我们命名的DockerizednginxWeb服务器
webserver
:docker run --detach --publish 80:80 --name webserver nginxUnable to find image 'nginx:latest' locally latest: Pulling from library/nginxfdd5d7827f33: Pull complete a3ed95caeb02: Pull complete 716f7a5f3082: Pull complete 7b10f03a0309: Pull complete Digest: sha256:f6a001272d5d324c4c9f3f183e1b69e9e0ff12debeb7a092730d638c33e0de3e Status: Downloaded newer image for nginx:latest dfe13c68b3b86f01951af617df02be4897184cbf7a8b4d5caf1c3c5bd3fc267f
-
将Web浏览器指向
http://localhost
以显示nginx开始页面。(您不需要追加,:80
因为您在docker
命令中指定了默认HTTP端口。)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wcqsv2q7-1651241930899)(https://docs.docker.com/docker-for-windows/images/nginx-homepage.png)]
-
仅列出_正在运行的_容器:
docker container lsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0e788d8e4dfd nginx "nginx -g 'daemon of…" 2 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp webserver
-
按我们分配的名称停止运行的nginx容器
webserver
:docker container stop webserver
-
按名称删除所有三个容器 - 后两个名称将因您而异:
docker container rm webserver laughing_kowalevski relaxed_sammet
Docker设置对话框
该泊坞窗Windows版桌面菜单是通过它可以配置你的码头工人设置一个弹出-安装,更新,版本渠道,多克尔中心登录等。
本节介绍可从“**设置”**对话框访问的配置选项。
-
通过右键单击通知区域(或系统托盘)中的Docker图标,打开Docker Desktop for Windows菜单:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zVFqRHki-1651241930900)(https://docs.docker.com/docker-for-windows/images/whale-icon-systray-hidden.png)]
-
选择**设置…**以打开“设置”对话框:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8CdAVYlJ-1651241930901)(https://docs.docker.com/docker-for-windows/images/docker-menu-settings.png)]
一般
在“设置”对话框的“**常规”**选项卡上,您可以配置何时启动和更新Docker。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sZeqGCKi-1651241930902)(https://docs.docker.com/docker-for-windows/images/settings-general.png)]
-
登录时启动Docker- 在Windows系统登录时自动启动Docker Desktop for Windows应用程序。
-
自动检查更新- 默认情况下,Docker Desktop for Windows会自动检查更新并在更新可用时通知您。单击“确定”接受并安装更新(或取消以保留当前版本)。您可以通过从Docker主菜单中选择Check for Updates来手动更新。
-
发送使用情况统计信息- 默认情况下,Docker Desktop for Windows会发送诊断,崩溃报告和使用情况数据。此信息有助于Docker改进应用程序并对其进行故障排除。取消选中此选项。Docker有时也可能会提示您提供更多信息。
共享驱动器
使用适用于Windows的Docker Desktop共享本地驱动器(卷),以便它们可供Linux容器使用。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dJURlPZN-1651241930903)(https://docs.docker.com/docker-for-windows/images/settings-shared-drives.png)]
共享驱动器的权限与您在此处提供的凭据相关联。如果docker
使用与此处配置的用户名不同的用户名运行命令,则容器无法访问已装入的卷。
要应用共享驱动器,系统会提示您输入Windows系统(域)用户名和密码。您可以选择一个选项让Docker存储凭据,这样您就不必每次都输入凭据。
共享驱动器的防火墙规则
共享驱动器要求端口445在主机和运行Linux容器的虚拟机之间打开。Docker检测端口445是否已关闭,并在您尝试添加共享驱动器时显示以下消息:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sypfLBJs-1651241930903)(https://docs.docker.com/docker-for-windows/images/shared-drive-firewall-blocked.png)]
要共享驱动器,请允许Windows主机与Windows防火墙中的虚拟机或第三方防火墙软件之间建立连接。您无需在任何其他网络上打开端口445。
默认情况下,允许10.0.75.1
从10.0.75.2
(虚拟机)连接到端口445(Windows主机)。如果防火墙规则似乎正确,则可能需要在Hyper-V虚拟网卡上切换或重新安装文件和打印共享服务
按需共享驱动器
您可以在第一次请求特定安装时“按需”共享驱动器。
如果从具有卷装入的shell运行Docker命令(如下面的示例所示)或启动包含卷装入的Compose文件,则会弹出一个询问您是否要共享指定驱动器的弹出窗口。
您可以选择共享它,在这种情况下,它会添加到Docker Desktop for WindowsShared Drives列表并可供容器使用。或者,您可以选择不通过点击取消来共享它。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6D8emwmC-1651241930904)(https://docs.docker.com/docker-for-windows/images/shared-drive-on-demand.png)]
高级
更改“高级”选项卡上的设置后,Linux VM将重新启动。这需要几秒钟。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JOzzBrEx-1651241930905)(https://docs.docker.com/docker-for-windows/images/settings-advanced.png)]
-
CPU- 更改分配给Linux VM的处理器数量。
-
内存- 更改Docker Desktop for Windows Linux VM使用的内存量。
网络
您可以将Docker Desktop for Windows网络配置为在虚拟专用网络(VPN)上工作。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hvQjyXnb-1651241930905)(https://docs.docker.com/docker-for-windows/images/settings-network.png)]
-
内部虚拟交换机- 您可以指定网络地址转换(NAT)前缀和子网掩码以启用Internet连接。
-
DNS服务器- 您可以将DNS服务器配置为使用动态或静态IP寻址。
更新这些设置需要重新配置并重新启动Linux VM。
代理
Docker Desktop for Windows允许您配置HTTP / HTTPS代理设置并自动将这些设置传播到Docker和容器。例如,如果将代理设置设置为http://proxy.example.com
,则Docker在提取容器时会使用此代理。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qoM96i3S-1651241930906)(https://docs.docker.com/docker-for-windows/images/settings-proxies.png)]
启动容器时,代理设置会传播到容器中。例如:
> docker run 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 http_proxy=http://proxy.example.com:3128 no_proxy=*.local, 169.254/16
在输出上文中,HTTP_PROXY
,http_proxy
,和no_proxy
环境变量设置。当您的代理配置更改时,Docker会自动重新启动以获取新设置。如果您希望在重新启动时继续运行容器,则应考虑使用重新启动策略。
守护进程
您可以配置Docker守护程序来磨练容器的运行方式。高级模式允许您直接编辑JSON。基本模式允许您使用交互设置(以及JSON)配置更常见的守护程序选项。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f6xfj5fA-1651241930907)(https://docs.docker.com/docker-for-windows/images/settings-daemon-basic.png)]
实验模式
Docker Desktop for Windows Stable和Edge版本都启用了Docker Engine的实验版本,在GitHub上的Docker实验特性README中有所描述。
实验性功能不适用于生产环境或工作负载。它们是用于新想法的沙盒实验。一些实验性功能可能会合并到即将发布的稳定版本中,但其他版本可能会从后续Edge版本中修改或删除,并且永远不会在Stable上发布。
在Edge和Stable版本上,您可以打开和关闭实验模式。如果您将其关闭,Docker Desktop for Windows将使用当前常用的Docker Engine版本。
运行docker version
以查看您是否处于实验模式。实验模式列在Server
数据下。如果Experimental
是true
,那么Docker正在以实验模式运行,如下所示:
docker versionClient:Version: 18.03.0-ceAPI version: 1.37Go version: go1.9.4Git commit: 0520e24Built: Wed Mar 21 23:06:28 2018OS/Arch: windows/amd64Experimental: trueOrchestrator: swarmServer:Engine:Version: 18.03.0-ceAPI version: 1.37 (minimum version 1.24)Go version: go1.9.4Git commit: 0520e24Built: Wed Mar 21 23:21:06 2018OS/Arch: windows/amd64Experimental: true
自定义注册表
您可以在基本守护程序设置上设置自己的注册表。
通常,您将公共或私有映像存储在Docker Hub和Docker Trusted Registry中。在这里,您可以使用Docker来设置自己的不安全注册表。只需为托管图像的不安全注册表和注册表镜像添加URL。
请参阅如何添加自定义CA证书?以及如何添加客户端证书?在常见问题解答中。
守护进程配置文件
该高级守护程序设置提供原件选项直接编辑JSON配置文件的守护进程。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uNElScrF-1651241930908)(https://docs.docker.com/docker-for-windows/images/settings-daemon-advanced.png)]
有关Docker守护程序的完整选项列表,请参阅守护程序以及子主题:
-
守护进程配置文件
-
Linux配置文件
-
Windows配置文件
Kubernetes
适用于Windows的Docker Desktop上的Kubernetes在18.02 Edge(win50)及更高版本以及18.06 Stable(win70)及更高版本中可用。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hho0SIe8-1651241930908)(https://docs.docker.com/docker-for-windows/images/settings-kubernetes.png)]
从Docker Desktop for Windows 18.02 CE Edge和18.06 CE Stable可以在Windows主机上运行独立的Kubernetes服务器,以便您可以测试在Kubernetes上部署Docker工作负载。
Kubernetes客户端命令kubectl
包含并配置为连接到本地Kubernetes服务器。如果您kubectl
已经安装并指向某些其他环境(例如minikube
GKE集群),请务必更改上下文,以便kubectl
指向docker-for-desktop
:
<span style="color:#33444c"><span style="color:#333333"><code>> kubectl config get-contexts
> kubectl config use-context docker-for-desktop
</code></span></span>
您也可以通过Docker Desktop for Windows菜单更改它:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yJDAHXHF-1651241930909)(https://docs.docker.com/docker-for-windows/images/docker-menu-context-switch.png)]
如果您kubectl
通过其他方法安装并遇到冲突,请将其删除。
-
要启用Kubernetes支持并安装作为Docker容器运行的独立Kubernetes实例,请选择Enable Kubernetes并单击Apply and restart按钮。
需要Internet连接。运行Kubernetes服务器所需的映像将被下载并实例化为容器,并且
-
默认情况下,Kubernetes容器对命令是隐藏的
docker service ls
,因为不支持手动管理它们。要使它们可见,请选择Show system containers(advanced),然后单击Apply并重新启动。大多数用户不需要此选项。 -
要随时禁用Kubernetes支持,请取消选择“启用Kubernetes”。停止并删除Kubernetes容器,并删除该
/usr/local/bin/kubectl
命令。有关使用Kubernetes与Docker Desktop for Windows集成的更多信息,请参阅在Kubernetes上部署。
重启
在“重置”选项卡上,您可以重新启动Docker或重置其配置。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L9dp7mIF-1651241930909)(https://docs.docker.com/docker-for-windows/images/settings-reset.png)]
-
重启Docker- 关闭并重新启动Docker应用程序。
-
重置为出厂默认值- 将Docker重置为出厂默认值。这在Docker停止工作或无响应的情况下非常有用。
诊断和反馈
请访问我们的日志和故障排除指南了解更多详情。
登录我们的Docker Desktop for Windows论坛,获取社区帮助,查看当前用户主题或加入讨论。
登录到GitHub上的Docker Desktop for Windows问题以报告错误或问题并查看社区报告的问题。
要提供有关文档的反馈或自行更新,请使用每个文档页面底部的反馈选项。
在Windows和Linux容器之间切换
从Docker Desktop for Windows菜单中,您可以切换Docker CLI与之对话的守护进程(Linux或Windows)。选择“**切换到Windows容器”**以使用Windows容器,或选择“**切换到Linux容器”**以使用Linux容器(默认设置)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LwwgXs0g-1651241930910)(https://docs.docker.com/docker-for-windows/images/docker-menu-switch.png)]
有关Windows容器的更多信息,请参阅此文档:
-
有关Windows容器的Microsoft文档。
-
构建并运行您的第一个Windows服务器容器(博客文章)可以快速浏览如何在Windows 10和Windows Server 2016评估版本上构建和运行本机Docker Windows容器。
-
Windows Containers入门(实验室)向您展示了如何将MusicStore应用程序与Windows容器一起使用。MusicStore是一个标准的.NET应用程序,在这里分叉使用容器,是多容器应用程序的一个很好的例子。
-
要了解如何从本地主机连接到Windows容器,请参阅:Windows容器[这里是代码057]和已发布端口的限制
添加TLS证书
对于Docker守护程序,您可以添加受信任的证书颁发机构(CA),以验证注册表服务器证书和客户端证书,以便向注册表进行身份验证。
请参阅如何添加自定义CA证书?以及如何添加客户端证书?在常见问题解答中。
Docker Hub
从Docker Desktop for Windows菜单中选择登录/创建Docker ID以访问您的Docker Hub帐户。登录后,您可以直接从Docker Desktop for Windows菜单访问Docker Hub存储库。
请参阅这些Docker Hub主题以了解更多信息:
- Docker Hub中的组织和团队
- 构建和图像
)
本文链接:https://my.lmcjl.com/post/15086.html
4 评论