ASP.NET CORE做的網站運行在docker實踐


 

用VS2017 建立了 DotNet Core 2.2 的網站后,如何轉移到 Docker 下運行?

下面分兩種方式來實踐: 1、直接手動命今行,將本機目錄映射進Docker,運行網站。2、制作 Image ,再啟動 Docker 運行。

 

一、將本機目錄映射進Docker,運行網站fil

      1. vs中建立ASP.NET CORE網站,類名為WebApplication3. (在創建時,可以勾選上 Docker 。好處是會自動生成 Dockerfile 文件,方便后面抄寫命令。)

      2. 發布到 e:/app 下。(隨便建的發布目錄)

      3. 先在本地CMD命令行測試一下是否成功,cd e:\app, 再運行docnet WebApplication3.dll

     4. 瀏覽器輸入http://localhost:5000 可以訪問網站

     5. 退出命令行工具,開始進行docker鏡像部署,前提是先裝好docker,如果映射本地端口是80則記得先把IIS停了(如果你裝了IIS的話)

     6. 在命令行上先安裝 DotNetCore 運行環境:Docker pull microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803  和 Docker pull microsoft/dotnet:2.2-sdk-nanoserver-1803

         這兩個命令行的具本內容,可以在工程自動生成的 Dockerfile 中找到。

         如果遇到錯誤:image operating system "windows" cannot be used on this platform

         請將 Docker 切換到windows 模式。

   

         7. 命令行CMD中輸入docker命令 docker run -p 8001:80 -v e:/app:c:/wwwroot -w /wwwroot microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803 dotnet WebApplication3.dll

           解釋下上面的命令:運行docker容器,名字叫microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803,這是微軟官方的asp.net core鏡像,映射本地端口8001到容器內的80端口,把本地目錄e:/app 映射為容器里的 C:/wwwroot 目錄 , 把容器內的工作目錄 設置為 /wwwroot,容器運行起來后再運行命令 dotnet /wwwroot/WebApplication3.dll

          請留意 -v 后面目錄的寫法。

          8.在瀏覽器中輸入http://localhost:8001 應該就可以訪問網站了,哪怕在命令行中按ctrl+c退出,但是實際上docker容器也是正在運行中,輸入命令docker ps 可以看到正在運行的容器。

 

二、網站制作 Image ,再啟動 Docker 運行

      1. 在 e:/app 目錄下,創建 Dockerfile 文件

FROM microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803
EXPOSE 80
EXPOSE 443

FROM microsoft/dotnet:2.2-sdk-nanoserver-1803
COPY . .
ENTRYPOINT ["dotnet", "WebApplication3.dll"]

 

      2. 在命令行中輸入 “docker build -t web3 . ” 創建鏡像文件

      3. 通過 docker images 可以查看到新建的 web3 鏡像。

      4. 啟動鏡像中的網站  docker run --name myWeb -p 9001:80 -d web3

      其中 -d 是后台運行的意思。輸出一串編碼,表示已經運行了。

      

      5. 在瀏覽器中輸入http://localhost:9001 應該就可以訪問網站了。

      6. 常用調試命令  docker ps 列出當前正在運行的 container , 還有  docker logs <container-id> 查看程序運行的log信息。

       刪除 container 和 刪除 image  也常用到。

 

三、參考文章

     了解用於 Linux 和 Windows 容器的 Docker “容器主機”與“容器操作系統”

     Docker簡單使用

      ASP.NET CORE做的網站運行在docker上(不用dockerfile文件部署)

     ASP.NET Core 2.1 使用Docker運行

     .net core build docker image


免責聲明!

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



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