.NET Core支持跨平台的應用。現在越來越多的.net應用可以部署雲上或Docker上。本文簡單介紹如何將.NET 5的ASP .NET Core應用部署到Docker.
打開VS2019,創建一個跨平台的Asp.NET Core應用 ,命名為:ASP.NETCore.Test。目標框架選擇 .NET 5。

記得勾選Docker支持項。(創建完會自動生成DockerFile文件,方便Docker部署)
在Pages文件夾下,打開index.cshtml,寫下頁面內容
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="text-center">
<div id="msg">[狀態]@Model.Code<br/>[消息]@Model.Message</div>
</div>
在后台的index.cshtml.cs頁面下封裝上面兩個屬性。
public string Message { get; private set; }
public int Code { get; private set; }
並在頁面的OnGet()事件下,寫下返回值。
Code = 200; Message = "調用成功";
在Program.cs啟動類,指定端口號8083:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>()
.UseUrls("http://*:8083");
});
啟動調試,在瀏覽器看到結果類似下圖所示:

以上簡單例子就是.NET 5的應用了。若要部署到Docker,則修改dockerfile文件中的腳本:
FROM mcr.microsoft.com/dotnet/aspnet:5.0 #設置工作目錄為 `/publish` 文件夾,即容器啟動默認的文件夾 WORKDIR /publish #拷貝項目publish文件夾中的所有文件到 docker容器中的publish文件夾中 COPY . /publish #設置Docker容器對外暴露8083端口 EXPOSE 8083 #使用dotnet命令啟動應用 CMD ["dotnet", "ASP.NETCore.Test.dll", "--server.urls", "http://*:8083"]
將文件上傳到linux服務器,使用命令構建docker鏡像。
docker build -t ASP.NETCore.Test:v1 .
啟動鏡像:
docker run --name pro -p 8083:8083 -d ASP.NETCore.Test:V1
