【原创】 Docker 中 运行 ASP.NET Core 站点

it2022-05-05  150

索引:

目录索引

一. 建立 .NetCore 项目

   a.新建项目

------------------------------------------------------------------------------------

------------------------------------------------------------------------------------

       b.选择项目类型

------------------------------------------------------------------------------------

------------------------------------------------------------------------------------

        c.添加控制器

------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------

------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Threading.Tasks; 5 using Microsoft.AspNetCore.Mvc; 6 7 namespace DemoLM.Controllers 8 { 9 public class DockerTestController : Controller 10 { 11 public IActionResult DockerIndex() 12 { 13 return View(); 14 } 15 } 16 } DockerTestController

-------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------

        d.添加视图

-------------------------------------------------------------------------------------

 

---------------------------------------------------------------------------------------

1 @{ 2 Layout = null; 3 } 4 5 <!DOCTYPE html> 6 7 <html> 8 <head> 9 <meta name="viewport" content="width=device-width" /> 10 <title>DockerIndex</title> 11 </head> 12 <body> 13 <h1>这是Docker中的Asp.net Core APP !</h1> 14 </body> 15 </html> DockerIndex

---------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------

       e.修改默认请求

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Threading.Tasks; 5 using Microsoft.AspNetCore.Builder; 6 using Microsoft.AspNetCore.Hosting; 7 using Microsoft.Extensions.Configuration; 8 using Microsoft.Extensions.DependencyInjection; 9 using Microsoft.Extensions.Logging; 10 11 namespace DemoLM 12 { 13 public class Startup 14 { 15 public Startup(IHostingEnvironment env) 16 { 17 var builder = new ConfigurationBuilder() 18 .SetBasePath(env.ContentRootPath) 19 .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) 20 .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) 21 .AddEnvironmentVariables(); 22 Configuration = builder.Build(); 23 } 24 25 public IConfigurationRoot Configuration { get; } 26 27 // This method gets called by the runtime. Use this method to add services to the container. 28 public void ConfigureServices(IServiceCollection services) 29 { 30 // Add framework services. 31 services.AddMvc(); 32 } 33 34 // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 35 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 36 { 37 loggerFactory.AddConsole(Configuration.GetSection("Logging")); 38 loggerFactory.AddDebug(); 39 40 if (env.IsDevelopment()) 41 { 42 app.UseDeveloperExceptionPage(); 43 app.UseBrowserLink(); 44 } 45 else 46 { 47 app.UseExceptionHandler("/Home/Error"); 48 } 49 50 app.UseStaticFiles(); 51 52 app.UseMvc(routes => 53 { 54 routes.MapRoute( 55 name: "default", 56 template: "{controller=DockerTest}/{action=DockerIndex}/{id?}"); 57 }); 58 } 59 } 60 } Startup

---------------------------------------------------------------------------------------

 --------------------------------------------------------------------------------------

      f.发布

---------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------

二. 准备 CentOS 环境

       a.准备虚拟机

---------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------

       b.安装 docker

1 yum install docker cent bash

----------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------

       c.设置docker 服务

1 systemctl start docker.service 2 systemctl enable docker.service cent bash

-----------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------

三. 打包 站点镜像

       a.将程序放入 /root

-----------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------

       b.命令切换至 DemoLM

1 cd ./DemoLM cent bash

-----------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------

      c.创建 Dockerfile

1 vim ./Dockerfile cent bash

--------------------------------------------------------------------------------------

------------------------------------------------------------------------------------

1 FROM docker.io/microsoft/aspnetcore 2 COPY ./bin/Release/PublishOutput ./publish 3 WORKDIR /publish 4 EXPOSE 80 5 CMD ["dotnet","DemoLM.dll"] image bash

-----------------------------------------------------------------------------------

------------------------------------------------------------------------------------

      d.打包镜像

1 docker build -t lmapp:1.0 . cent bash

------------------------------------------------------------------------------------

 

---------------------------------------------------------------------------------------

四. 运行镜像 并浏览网站

        a.查看镜像

1 docker images cent bash

---------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------

      b.运行镜像

1 docker run -d -t --name lmweb10 -p 8800:80 lmapp:1.0 cent bash

----------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------

       c.查看运行状态

1 docker logs lmweb10 cent bash

---------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------

1 docker ps cent bash

-----------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------

      d.浏览站点

-------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------

五. 详细知识点讲解,请看PPT 分享 O(∩_∩)O哈哈~  ( PS:请关注后续博客 )

       a. Linux 讲解

       b. .NetCore 讲解

       c. Docker 讲解

       e. Git hooks 讲解

       f. Visual Studio 讲解

 

                                         蒙

                                    2017-07-05  14:28  周三

 

转载于:https://www.cnblogs.com/Meng-NET/p/7121118.html


最新回复(0)