.NET Core 3.0 部署在docker上运行
<p data-source-line="1"><img src="https://img2018.cnblogs.com/blog/449569/201911/449569-20191111093923786-1354755005.png" alt=""></p><p data-source-line="1">自从.NET<span class="Apple-converted-space"> Core3.0发布之后,写了几篇关于.NET<span class="Apple-converted-space"> Core 3.0的文章,有助于你快速入门.NET<span class="Apple-converted-space"> Core3.0。</span></span></span></p>
<p data-source-line="1"><span class="Apple-converted-space"><span class="Apple-converted-space"><span class="Apple-converted-space">本篇文章主要讲解如何一步步创建一个mvc项目,然后发布并部署在Docker上运行。需要你本地有docker环境</span></span></span></p>
<ol data-source-line="3">
<li>.Net Core3.0 配置Configuration</li>
<li>.Net Core3.0使用gRPC</li>
<li>.NET Core3.0创建Worker Services</li>
<li>.Net Core3.0 日志 logging</li>
<li>.Net Core3.0依赖注入DI</li>
<li>.NET Core 3.0 中间件 Middleware</li>
<li>.Net 5.0:.Net的未来-译</li>
</ol>
<h4 id="创建一个站点" data-source-line="13">1.创建一个站点</h4>
<p data-source-line="13"><span style="font-family: 宋体">创建一个</span>ASP.NET Core Web<span style="font-family: 宋体">应用程序,选中启用</span><span style="font-family: Calibri">Docker</span><span style="font-family: 宋体">支持。自动帮我们创建一个</span><span style="font-family: Calibri">Dockerfile</span><span style="font-family: 宋体">文件。</span></p>
<p data-source-line="13"><span style="font-family: 宋体"><img src="https://img2018.cnblogs.com/blog/449569/201911/449569-20191111094021168-1702631751.png" alt=""></span></p>
<h4 id="编写dockerfile文件" data-source-line="18">2.编写Dockerfile文件</h4>
<p>dockerfile是一个文件格式的配置文件,用户可以使用dockerfile来快速构建自定义的镜像。由一行行命令语句组成,并且支持#开头的注释行。</p>
<p>dockerfile主题内容一般分为4部分</p>
<ol>
<li>基础镜像信息</li>
<li>维护者信息使用label指令</li>
<li>镜像操作指令</li>
<li>容器启动时执行指令</li>
</ol>
<div class="cnblogs_code">
<pre>FROM mcr.microsoft.com/dotnet/core/aspnet:<span style="color: rgba(128, 0, 128, 1)">3.0</span>-buster-slim AS <span style="color: rgba(0, 0, 255, 1)">base</span><span style="color: rgba(0, 0, 0, 1)">
WORKDIR </span>/<span style="color: rgba(0, 0, 0, 1)">app
EXPOSE </span><span style="color: rgba(128, 0, 128, 1)">80</span><span style="color: rgba(0, 0, 0, 1)">
COPY . .
ENTRYPOINT [</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">dotnet</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">AA.Mvc.dll</span><span style="color: rgba(128, 0, 0, 1)">"</span>]</pre>
</div>
<p data-source-line="27">dockerfile文件指令说明:</p>
<ul data-source-line="28">
<li>FROM -指定所创建镜像的基础镜像</li>
<li>WORKDIR-配置工作目录</li>
<li>EXPOSE-声明镜像内服务监听的端口</li>
<li>COPY-复制内容到镜像</li>
<li>ENTRYPOINT-启动镜像的默认人口命令</li>
</ul>
<p data-source-line="35">编译发布web项目</p>
<p data-source-line="35"><img src="https://img2018.cnblogs.com/blog/449569/201911/449569-20191111094110205-1670576808.png" alt=""></p>
<h4 id="站点发布xftp上传centos" data-source-line="38">3.站点发布,xftp上传centos</h4>
<p>使用xftp上传到centos系统中</p>
<p><img src="https://img2018.cnblogs.com/blog/449569/201911/449569-20191111094143103-411610114.png" alt=""></p>
<h4 id="构建镜像运行容器并浏览" data-source-line="42">4.构建镜像,运行容器并浏览</h4>
<p data-source-line="43"> 4.1创建镜像,可以使用命令docker build,如下所示:</p>
<div class="cnblogs_code">
<pre>docker build -t core-mvc .</pre>
</div>
<p><img src="https://img2018.cnblogs.com/blog/449569/201911/449569-20191111094228920-628048393.png" alt=""></p>
<p>参数分解:</p>
<ul data-source-line="49">
<li>-t ---指定镜像名称</li>
<li>命令结尾处 <span style="font-size: 15px"><strong><span style="font-size: 18pt">.</span> </strong></span>---表示build上下文为当前目录,默认情况下docker会使用在上下文的根目录下找到Dockerfile文件</li>
</ul>
<p data-source-line="52">4.2查看镜像列表,输入一下命令</p>
<div class="cnblogs_code">
<pre>docker images</pre>
</div>
<p><img src="https://img2018.cnblogs.com/blog/449569/201911/449569-20191111094303668-692056135.png" alt=""></p>
<p data-source-line="62">4.3创建并启动、查看容器</p>
<div class="cnblogs_code">
<pre>ocker run --name netcore-mvc -d -p <span style="color: rgba(128, 0, 128, 1)">50879</span>:<span style="color: rgba(128, 0, 128, 1)">80</span>core-<span style="color: rgba(0, 0, 0, 1)">mvc
docker ps </span>-a</pre>
</div>
<p><img src="https://img2018.cnblogs.com/blog/449569/201911/449569-20191111094337406-1136717168.png" alt=""></p>
<p> 参数说明</p>
<ul data-source-line="70">
<li>-d ,表示在后台以守护态(daemonized)形式运行容器</li>
<li>-p 外部端口与内部容器端口映射。</li>
<li>--name 指定容器的名称。当然可以不指定,默认会为我们创建</li>
<li>最后一个参数 core-mvc 就是我们刚创建的镜像名称</li>
</ul>
<p data-source-line="76">经过以上4个步骤,在浏览器中输入地址http://192.168.92.130:50879查看如图</p>
<p data-source-line="76"><img src="https://img2018.cnblogs.com/blog/449569/201911/449569-20191111094416803-813841483.png" alt=""></p>
<p>至此一个完整的项目以手工的方式运行在docker容器中。 </p>
<p>欢迎加入微信群,一起交流,加我qinzhong45备注入群 </p><br><br>
来源:https://www.cnblogs.com/chengtian/p/11832955.html
頁:
[1]