本文转载自微信公众号《马农读书》,作者马农读书。转载本文请联系码农阅读公众号。与虚拟机相比,Docker更轻量,也更方便。你为什么这么说?虚拟机通常会打包一个完整的操作系统,而容器只是打包你的应用、运行环境和相关的依赖。Docker是一个开源工具包,可以帮助您更方便地构建、部署和管理容器。容器通常被定义为包含代码和相关依赖库的应用软件单元。这里的单位是指应用程序运行在自己独立的环境中。言外之意就是容器与容器之间是相互隔离的。值得注意的是,虽然容器之间是隔离的,但它们仍然共享一个操作系统,可以是Windows,也可以是Linux,这也是Docker的诱惑之一。在本文中,我们将讨论如何在Windows平台ASP.NetCore上使用Docker部署。在Windows上安装Docker如果想在Windows上安装Docker,可以参考官方链接:https://docs.docker.com/docker-for-windows/install/,由于文档篇幅,我赢了'这里详述,根据文档上面安装完成后,可以使用如下命令测试Docker是否安装成功。docker--versionCreateanAsp.NetCoreprojectwithDocker使用VisualStudio2019创建ASP.NetCoreWebApplication模板时,记得勾选EnableDockerSupport,在OS中选择Windows,如下图:项目创建完成后,解决方案下会自动生成一个Dockerfile,如下图:Dockerfile大致如下:FROMmicrosoft/aspnet:4.7.2-windowsservercore-1803ARGsourceWORKDIR/inetpub/wwwrootCOPY${source:-obj/Docker/publish}.Dockerfile主要用来描述如何构建docker镜像。也可以根据自己的场景修改默认的dockerfile,比如修改From镜像名称,将宿主机从windows切换到linux。将ASP.NetCore部署到Docker,首先通过VisualStudio构建项目,然后以管理员模式打开cmd窗口,在命令窗口中输入如下命令。dockerbuild-tdockersample。上面的命令会将应用程序构建到一个名为dockersample的镜像中。下图显示了构建过程。镜像生成后,可以通过镜像实例化一个应用容器,使用如下命令。dockerrun-d-p8080:80--namemyappdockersample上面的myapp表示你的容器名称,下面的dockersample是之前构建的镜像名称。如果一切正常,此时应用程序将成功运行在容器上。你可以浏览控制器中输入http://localhost:8080/api/values地址调用ValuesController.Get()方法来判断是否一切正常。Docker的一些常用命令列出所有镜像,可以使用如下命令。dockerimagels要列出所有容器,请使用以下命令。dockercontainerls--all要停止容器,请使用以下命令。dockerstopcontainername要删除容器,可以使用以下命令。dockerrmcontainername值得注意的是,如果要删除的容器正在运行,此时不能删除。正确的做法是先停止容器再删除。容器为应用程序提供了一个非常小且轻量级的运行环境。与虚拟机相比,容器更轻量,一旦容器启动,你的应用程序几乎同时启动。Docker是一种开源容器化解决方案。如今也是主流的容器化方式,更多关于Docker的讨论会在后面的文章中一一展开。翻译链接:https://www.infoworld.com/article/3314897/how-to-dockerize-an-aspnet-core-application.html
