【转载】.NET开发技能:容器化ASP.NET Core?
容器通常被定义为包含了 代码和相关依赖库
的应用程序软件单元,这里的 单元
意味着应用程序运行在拥有自己的独立环境上,言外之意就是容器和容器之间是相互隔离的,值得注意的是,虽然容器之间是隔离的,但它们还是共享一个操作系统,这个操作系统可以是 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
Docker 的一些常用命令
要想列出所有的 images,可以使用如下命令。
docker image ls
要想列出所有的容器,使用如下命令。
docker container ls –all
要想停止容器,使用如下命令。
docker stop containername
要想删除某一个容器,可以使用如下命令。
docker rm containername
值得注意的是,如果要删除的容器正在运行中,此时你是删除不掉的,正确的做法是先停止容器,然后再删除。
容器给了应用程序极小轻量的运行环境,相比虚拟机,容器更加轻量级,而且容器一旦启动,你的应用程序几乎同时启动,Docker 是一种开源的容器化解决方案,现如今也是主流的容器化方式,关于更多的 Docker 讨论会在后面的文章中一一展开。
译文链接:
付费内容,请联系本人QQ:1002453261
本文来自博客园,作者:明志德道,转载请注明原文链接:https://www.cnblogs.com/for-easy-fast/articles/14503582.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析