在docker上部署自己的.net8 webapi,以騰迅linux雲服務為例:
1.安裝docker
1.1 檢視docker是否已安裝:
命令:docker -v
如果顯示版本,說明已經安裝成功,無需再安裝
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
2.建立webapi專案
2.1 新建解決方案
寫上自己業務邏輯的控制器和方法
2.2 選擇專案AspNetCoreWebApi,
右鍵新增docker支援,
新增成功會出現Dockerfile【D必須大寫】
內容大致如下:
開啟專案 目錄 Properties 下 launchSettings.json 檔案,將會看到新增的如下內容:
需要注意的是Dockerfile檔案中的 EXPOSE後方的埠需要與 Properties\launchSettings.json 檔案中的 ASPNETCORE_HTTP_PORTS 指定端埠一致,該埠在部署到 docker 後,將作為容器埠使用。
3.釋出專案
3.1 釋出上傳
將public目錄下的所有檔案上傳到linux伺服器上,linux上傳目錄如下:/root/dockerwebapi/AspNetCoreWebApi/publish
3.2 定位到public同級目錄,建立Dockerfile檔案
touch Dockerfile
vim Dockerfile
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 .
4.2 檢視映象
docker images
映象建立成功
5執行映象
docker run -d -p 18080:18080 --name mywebapicontainer aspnetcorewebapi
#-d:後臺執行 -P:暴露埠給客戶端訪問 --name 建立一個容器 指定映象
輸入下列命令。檢視執行的程序。方便定位資訊
docker ps
5.2 地址訪問
成功訪問,專案正常釋出成功,nice!