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

索引:

目录索引

一. 建立 .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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值