第43篇 Linux上使用docker部署.net8專案詳細教程

似梦亦非梦發表於2024-10-25

在docker上部署自己的.net8 webapi,以騰迅linux雲服務為例:

1.安裝docker

1.1 檢視docker是否已安裝:

命令:docker -v
image

如果顯示版本,說明已經安裝成功,無需再安裝

1.2 docker未安裝,執行以下步驟安裝

1.2.1 新增 Docker 軟體源。

dnf config-manager --add-repo=http://mirrors.tencent.com/docker-ce/linux/centos/docker-ce.repo

1.2.2 檢視已新增的 Docker 軟體源。

dnf list docker-ce

1.2.3 安裝docker

dnf install -y docker-ce --nobest

1.2.4 執行docker

systemctl start docker

1.2.5 檢視docker資訊

docker info

image

2.建立webapi專案

2.1 新建解決方案

image

寫上自己業務邏輯的控制器和方法

2.2 選擇專案AspNetCoreWebApi,

image

右鍵新增docker支援,
image

新增成功會出現Dockerfile【D必須大寫】
image

內容大致如下:

image

開啟專案 目錄 Properties 下 launchSettings.json 檔案,將會看到新增的如下內容:

image

需要注意的是Dockerfile檔案中的 EXPOSE後方的埠需要與 Properties\launchSettings.json 檔案中的 ASPNETCORE_HTTP_PORTS 指定端埠一致,該埠在部署到 docker 後,將作為容器埠使用。

3.釋出專案

3.1 釋出上傳

image

image

將public目錄下的所有檔案上傳到linux伺服器上,linux上傳目錄如下:/root/dockerwebapi/AspNetCoreWebApi/publish
image

3.2 定位到public同級目錄,建立Dockerfile檔案

touch Dockerfile
vim   Dockerfile

image

3.3 vim編輯,輸入下面的內容

FROM mcr.microsoft.com/dotnet/aspnet:8.0.0
WORKDIR /publish
EXPOSE 18080
EXPOSE 443
COPY ./publish/ .
ENV ASPNETCORE_URLS http://+:18080
ENTRYPOINT ["dotnet","AspNetCoreWebApi.dll"]

注意:ENTRYPOINT ["dotnet","AspNetCoreWebApi.dll"]AspNetCoreWebApi.dll是我專案的dll。專案不一樣名字就不一樣。這裡請用實際專案的dll名稱哦

4.生成映象

4.1 生成映象

docker build -t AspNetCoreWebApi .

image

4.2 檢視映象

docker images

image
映象建立成功

5執行映象

docker run -d -p 18080:18080 --name mywebapicontainer aspnetcorewebapi
#-d:後臺執行     -P:暴露埠給客戶端訪問   --name 建立一個容器 指定映象

輸入下列命令。檢視執行的程序。方便定位資訊

docker ps

5.2 地址訪問

image
image

成功訪問,專案正常釋出成功,nice!

相關文章