Docker for Windows使用简介
<p>在上一篇文章中,通过演练指导的方式,介绍了在Docker中运行ASP.NET Core Web API应用程序的过程。本文将介绍Docker for Windows的使用。</p><h1>先决条件</h1>
<p>前两周时间,Docker发布了Docker for Windows的正式版,于是就可以在Windows下运行Docker容器了。要在Windows下运行Docker,需要满足以下先决条件:</p>
<ul>
<li>64位Windows 10 Pro、Enterprise或者Education版本(Build 10586以上版本,需要安装1511 November更新)</li>
<li>在系统中启用Hyper-V。如果没有启用,Docker for Windows在安装过程中会自动启用Hyper-V(这个过程需要重启系统)</li>
</ul>
<p>不过,如果不是使用的Windows 10,也没有关系,可以使用Docker Toolbox作为替代方案。</p>
<h1>Docker for Windows的安装与使用</h1>
<p>在Windows 10中,请点击此处下载Docker for Windows的安装包,然后开始安装。正如上面所述,如果Hyper-V没有启用,安装过程会自动启用Hyper-V,这将需要重新启动Windows系统。安装完成后,就可以在Windows下使用Docker了。</p>
<p>启动Docker for Windows,会在系统托盘部分显示一条小鲸鱼的图标:<img style="background-image: none; padding-top: 0; padding-left: 0; display: inline; padding-right: 0; border-width: 0" title="image" src="https://images2015.cnblogs.com/blog/119825/201608/119825-20160819210132078-1848147498.png" alt="image" width="22" height="20" border="0">。在Docker完全启动之前,小鲸鱼背上的小方块会不停地闪烁变化,等小方块稳定不变后,表示系统完全启动成功,此时就可以对Docker的环境进行设置,或者开始执行Docker命令了。</p>
<h2>Docker环境的设置</h2>
<p>右键单击系统托盘上的小鲸鱼图标,选择Settings菜单:</p>
<p><img style="background-image: none; padding-top: 0; padding-left: 0; margin: 0; display: inline; padding-right: 0; border-width: 0" title="image" src="https://images2015.cnblogs.com/blog/119825/201608/119825-20160819210133500-678723045.png" alt="image" width="229" height="191" border="0"></p>
<p>此时将打开Settings对话框:</p>
<p><img style="background-image: none; padding-top: 0; padding-left: 0; display: inline; padding-right: 0; border-width: 0" title="image" src="https://images2015.cnblogs.com/blog/119825/201608/119825-20160819210134875-381396596.png" alt="image" width="826" height="493" border="0"></p>
<p>该对话框主要包含了针对运行Docker Daemon的虚拟环境的配置,以及对Docker Daemon的配置。包括:</p>
<ul>
<li>Shared Drivers:可以将主机(也就是Windows机器)中的驱动器共享到Docker Container中</li>
<li>Advanced:用于配置运行Docker Daemon的虚拟环境的CPU和内存</li>
<li>Network:配置Docker的网络环境</li>
<li>Proxies:代理的配置</li>
<li>Docker Daemon:使用JSON格式的设置,对Docker Daemon进行配置,类似于在Linux环境中使用conf文件对Docker进行配置</li>
</ul>
<p>其实,Docker for Windows的安装过程会在Hyper-V中创建一台用于运行Docker Daemon的Linux虚拟机,这个对话框中的很多配置也就是针对该虚拟机所作出的配置。当配置发生更改后,Docker for Windows会重新启动(小鲸鱼背上的小方块又会动起来),这个过程其实就是这台Linux虚拟机的配置进行动态调整和重启的过程。例如,从下图可以看到,我将我自己的Docker设置为1个CPU和1GB的内存,这个配置会应用到Hyper-V的这台虚拟机上:</p>
<p><img style="background-image: none; padding-top: 0; padding-left: 0; margin: 0; display: inline; padding-right: 0; border-width: 0" title="image" src="https://images2015.cnblogs.com/blog/119825/201608/119825-20160819210136718-1872369022.png" alt="image" width="1024" height="498" border="0"></p>
<p>如果在Windows 10以前版本的Windows中安装Docker Toolbox,就需要确保Windows系统支持硬件虚拟化技术(HVT):</p>
<ul>
<li>如果是使用的Windows 8或者8.1:在任务管理器中,选择“性能”标签页,然后在CPU一栏,查看“虚拟化”(Virtualization)一项是否已经启用</li>
<li>如果是Windows 7,请下载并执行Microsoft Hardware-Assisted Virtualization Detection Tool来查看系统是否满足条件</li>
</ul>
<p>同时,还需要确保Windows系统是64位的。有关Docker Toolbox的更多信息,请参考官方网站的详细说明。</p>
<h2>运行Docker命令</h2>
<p>在Docker for Windows成功启动后,就可以在Windows命令提示符下执行Docker命令了,也可以在Power Shell中执行Docker命令,看个人喜好吧。Docker CLI的体验和Linux下是一样的。</p>
<p><img style="background-image: none; padding-top: 0; padding-left: 0; display: inline; padding-right: 0; border: 0" title="image" src="https://images2015.cnblogs.com/blog/119825/201608/119825-20160819210138953-1393710157.png" alt="image" width="858" height="768" border="0"></p>
<h1>使用Docker for Windows在容器中运行ASP.NET Core Web API应用程序</h1>
<p>我们仍然使用前面这篇文章中所发布的那个ASP.NET Core Web API应用程序,也仍然使用那个Dockerfile文件。现在,首先确保Dockerfile文件与发布出来的DockerWebAPI应用程序的文件都在同一个目录下:</p>
<p><img style="background-image: none; padding-top: 0; padding-left: 0; margin: 0; display: inline; padding-right: 0; border: 0" title="image" src="https://images2015.cnblogs.com/blog/119825/201608/119825-20160819210140828-1439845652.png" alt="image" width="865" height="501" border="0"></p>
<p>然后执行:</p>
<pre class="brush: text;">docker build -t daxnet/docker-webapi .</pre>
<p>将看到以下结果(当然,之前已经执行过一次了,所以基本上每一步的Image都是从缓存里取的):</p>
<p><img style="background-image: none; padding-top: 0; padding-left: 0; display: inline; padding-right: 0; border: 0" title="image" src="https://images2015.cnblogs.com/blog/119825/201608/119825-20160819210142328-964256709.png" alt="image" width="979" height="610" border="0"></p>
<p>与Linux下编译Docker Image相比,这里多了一个安全警告。这是因为我们是在Windows下使用部署在非Windows中的Docker服务来完成的Image的编译生成,两套系统中的文件权限设置不同。Docker for Windows建议在编译生成的Image上对文件的权限进行检查以确保安全。</p>
<p>接下来测试一下刚刚生成的Docker Image。执行:</p>
<pre class="brush: text;">docker run -it -p 8080:5000 daxnet/docker-webapi</pre>
<p>将得到下面的效果:</p>
<p><img style="background-image: none; padding-top: 0; padding-left: 0; margin: 0; display: inline; padding-right: 0; border: 0" title="image" src="https://images2015.cnblogs.com/blog/119825/201608/119825-20160819210144171-1810194122.png" alt="image" width="979" height="242" border="0"></p>
<p>测试一下:</p>
<p><img style="background-image: none; padding-top: 0; padding-left: 0; margin: 0; display: inline; padding-right: 0; border: 0" title="image" src="https://images2015.cnblogs.com/blog/119825/201608/119825-20160819210145421-870110930.png" alt="image" width="627" height="266" border="0"></p>
<p>效果跟前一篇文章的效果一样。</p>
<h1>总结</h1>
<p>本文对Docker for Windows进行了简单的介绍,并使用上一篇文章的案例,在Docker for Windows上运行了ASP.NET Core Web API应用程序。后文我还将介绍有关Docker使用的一些内容,还会继续结合ASP.NET Core Web API来讲解RESTful服务的容器化(Dockerization)与部署。</p><br><br>
来源:https://www.cnblogs.com/daxnet/p/5788972.html
頁:
[1]