.NET开发技能:容器化ASP.NET Core?

dotNET全栈开发

共 2304字,需浏览 5分钟

 ·

2021-03-08 17:39

Docker 相比 虚拟机 具有更轻量级,更便捷的特性,为什么这么说呢?虚拟机通常打包了完整的操作系统,而容器只仅仅打包了你的应用程序,运行环境及相关依赖库,Docker 是一种开源的工具包,帮助你更加方便的构建,部署,管理容器。

容器通常被定义为包含了 代码和相关依赖库 的应用程序软件单元,这里的 单元 意味着应用程序运行在拥有自己的独立环境上,言外之意就是容器和容器之间是相互隔离的,值得注意的是,虽然容器之间是隔离的,但它们还是共享一个操作系统,这个操作系统可以是 Windows 或者 Linux,这也是Docker的诱惑点之一,这篇文章我们将会讨论如何在 Windows 平台上使用  Docker 部署 ASP.Net Core。

Windows 上安装 Docker

要想在 Windows 上安装 Docker,可以参考官方链接:https://docs.docker.com/docker-for-windows/install/  ,由于篇幅的原因,这里就不赘述了,根据文档所述安装好之后,可以使用如下命令来测试 Docker 是否已经安装成功。


docker --version

创建含 Docker 的 Asp.Net Core 项目

使用 Visual Studio 2019 创建  ASP.Net Core Web Application 模板的时候,记得勾选一下 Enable Docker Support ,在 OS 处选好 Windows 即可,如下图所示:

当项目创建好之后,解决方案下会自动生成一个 Dockerfile 文件,如下图所示:

Dockerfile 大体如下:


FROM microsoft/aspnet:4.7.2-windowsservercore-1803
ARG source
WORKDIR /inetpub/wwwroot
COPY ${source:-obj/Docker/publish} .

Dockerfile 的目的主要是用来描述如何构建 docker images,你也可以根据自己的场景修改默认的 dockerfile ,比如说修改 From 镜像名将 host 从 windows 切换到 linux 上。

部署 ASP.Net Core 到 Docker

首先通过 Visual Studio 对项目进行 build,然后用管理员模式开启 cmd 窗口,在命令窗口上输入如下命令。


docker build -t dockersample .

上面的命令将会把应用程序构建成名为 dockersample 的镜像,下图就展示了这个 build 的过程。

images 生成好之后,接下来就可以通过 images 实例化出一个 application 容器,使用如下命令即可。


docker run -d -p 8080:80 --name myapp dockersample

上面的 myapp 表示你的容器名字, 后面的 dockersample 就是之前构建好的镜像名,如果一切正常,此时应用程序就成功跑在 container 上了,你可以通过浏览器键入 http://localhost:8080/api/values 地址来调用 ValuesController.Get() 方法判断是否一切正常。

Docker 的一些常用命令

要想列出所有的 images,可以使用如下命令。


docker image ls

要想列出所有的容器,使用如下命令。


docker container ls –all

要想停止容器,使用如下命令。


docker stop containername

要想删除某一个容器,可以使用如下命令。


docker rm containername

值得注意的是,如果要删除的容器正在运行中,此时你是删除不掉的,正确的做法是先停止容器,然后再删除。

容器给了应用程序极小轻量的运行环境,相比虚拟机,容器更加轻量级,而且容器一旦启动,你的应用程序几乎同时启动,Docker 是一种开源的容器化解决方案,现如今也是主流的容器化方式,关于更多的 Docker 讨论会在后面的文章中一一展开。

译文链接:https://www.infoworld.com/article/3314897/how-to-dockerize-an-aspnet-core-application.html







回复 【关闭】广
回复 【实战】获取20套实战源码
回复 【被删】
回复 【访客】访
回复 【小程序】学获取15套【入门+实战+赚钱】小程序源码
回复 【python】学微获取全套0基础Python知识手册
回复 【2019】获取2019 .NET 开发者峰会资料PPT
回复 【加群】加入dotnet微信交流群

卧槽!微信可以改彩色昵称了!!!


适合小白入门的Asp.Net Core 开源学习手册


浏览 41
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报