.Net Core部署到Docker的最簡單方式


.Net Core部署到Docker的最簡單方式

1.准備工作

  1. 已經安裝好docker的系統
  2. 已經准備好上docker的程序
  3. 建議先在docer上拉取aspnet環境(docker pull mcr.microsoft.com/dotnet/aspnet)
  4. net 構造器環境(docker pull mcr.microsoft.com/dotnet/sdk:5.0-buster-slim)

環境

  1. asp.net core 5.0
  2. Docker version 1.13.1, build 0be3e21/1.13.1

2.Dockerfile

這是通過FTP上傳方式的Dockerfile(此種方式請先拉取aspnet環境)

FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim   
WORKDIR /app
COPY . . 
#設置端口
EXPOSE 80
EXPOSE 443
ENTRYPOINT ["dotnet", "Shio.Docker.dll"] 

下面是通過倉庫方式的Dockerfile(此方式直接用: vs右擊項目=>添加=>docker支持)就會生成

FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
WORKDIR /src
COPY ["Shio.Docker.csproj", ""]
RUN dotnet restore "./Shio.Docker.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "Shio.Docker.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Shio.Docker.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Shio.Docker.dll"]

3.FTP

  1. 可直接參考福祿網絡研發團隊的《.NET5都來了,你還不知道怎么部署到linux?最全部署方案,總有一款適合你》 XSHELL+XFTP
  2. 安裝好XSHELL后,通過XFTP確定你的程序存放的位置,例如我就在root的同級目錄下創建了codepublish文件夾來存放文件,將程序文件放入其中
  3. 現在切換文件夾(一下我用codepublish文件夾來舉例):cd codepublish
  4. docker build -t Shio.Docker(此為你給這個鏡像的取名 -t就是取名的意思 后面的Shio.Docker就是你給鏡像取得名字)
  5. docker run -p 80:80 -p 443:443 Shio.Docker(鏡像名)(-p 后面的第一個80是系統的端口第二個是容器的端口,上面的代碼意思為:運行Shio.Docker鏡像,並將容器的80和443端口映射到系統的80和443)

4.通過拉取鏡像的方式

  1. 我下面以阿里雲舉例
  2. 你得現在自己的開發電腦上安裝Docker Desktop(win10)
  3. 去阿里雲啟用《容器鏡像服務》
  4. 在阿里雲的《容器鏡像服務》中簡歷命名空間與鏡像倉庫
  5. 打開vs右擊項目發布 選擇docker容器注冊表=>下一步=>其他docker容器注冊表
  6. 進入鏡像倉庫 點擊倉庫名稱
  7. vs注冊表URL(R)=阿里雲鏡像倉庫-基礎信息-公網地址
  8. vs用戶名(U)=你阿里雲的登錄賬號名稱
  9. vs密碼(P)=你開啟容器鏡像服務的密碼,如果不知道可以在阿里雲的倉庫管理=>訪問憑證=>重新設置
  10. 建議在本地的docker中也先安裝aspnet的運行環境與net的構造器
  11. 用vs點擊發布,發布失敗的幾種解決問題:
    1. 拉取ASPNET速度太慢,這個就是建議提前安裝或者爬梯子
  12. 打開cmd或者Powershell
  13. docker login --username=123xxx**@qq.com registry.cn-shenzhen.aliyuncs.com
  14. docker tag 鏡像的ImageId registry.cn-shenzhen.aliyuncs.com/shio/test:隨便你編一個版本號
  15. docker push registry.cn-shenzhen.aliyuncs.com/shio/test:你剛剛編的版本號
  16. 在你的服務器中拉取你的鏡像
    1. docker login --username=123xxx**@qq.com registry.cn-shenzhen.aliyuncs.com
    2. docker pull 倉庫地址:你剛剛編的版本號
    3. docker run -p 80:80 -p 443:443 Shio.Docker(鏡像名)(-p 后面的第一個80是系統的端口第二個是容器的端口,上面的代碼意思為:運行Shio.Docker鏡像,並將容器的80和443端口映射到系統的80和443)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM