docker 初識之二(簡單發布ASP.NET Core 網站)


    在發布ASP.NET Core網站以前,先介紹一下DaoCloud 一個免費的docker雲容器服務平台。登陸官方網站,創建一台docker主機,這台主機有120分鍾的使用時間,對於鄙人學習使用正好合適。這台docker主機一般是ubuntu主機,同時docker里面已經集成了一些鏡像例如:mysql 、nginx等。

  1.獲取microsoft/dotnet

  登陸這台主機,下載dotnet的鏡像:docker pull microsoft/dotnet。如果有什么疑問大家可以移步(Docker 初步認識),由於是雲主機所以下載速度很快,這也是鄙人為什么使用這個雲主機的主要原因之一。
docker pull microsoft/dotnet
     下載完成以后使用命令:docker images 查看是否鏡像下載成功。
docker images

   2.運行 microsoft/dotnet-samples

   安裝完成后,在容器中來運行一個測試的Application,下面是運行結果,這是microsoft寫好的一個簡單的.net core Dome。
docker run microsoft/dotnet-samples

  3.運行APS.Net core MVC

  需要下載安裝dotnet core環境到主機,自己寫一個簡單的APS.Net core MVC,然后把這個做成一個鏡像,然后運行這個鏡像。

  上圖是在主機中運行了 asp.net mvc 后的結果,說明創建的項目成功運行了。下面把這個asp.net mvc 制作成鏡像發布到docker中。

        在制作鏡像時我們需要創建Dockerfile,下文為VS為我們創建的Dockerfile 模板:  
#鏡像來源為 microsoft/dotnet:1.1-runtime  分號后面表示版本信息
FROM microsoft/dotnet:1.1-runtime
#聲明變量 在docker build創建鏡像時 使用--build-arg 傳入參數source
ARG source
#設置路徑指令 相當於cd  切換到根目錄/app路徑下
WORKDIR /app
#復制指令 如果source創建是沒有賦值,默認路徑為obj/Docker/publish 
COPY ${source:-obj/Docker/publish} .
#指定容器啟動時執行的命令
ENTRYPOINT ["dotnet", "ConsoleApp1.dll"]
    Dockerfile基本語法,就大致說明一下,具體的大家需要去看官方文檔
        1.用#注釋代碼
        2.命令是從上到下 逐條執行
        3.From指令告訴Docker使用哪個基礎鏡像
        4.后面是維護的一些說明信息
   在程序中創建的Dockerfile  鏡像為microsoft/dotnet 切換到docker 的/app目錄下  復制當前目錄out到/app目錄下,然后執行 dotnet app.dll 命令
FROM microsoft/dotnet:lastest
WORKDIR /app
COPY out .
ENTRYPOINT ["dotnet","app.dll"]
     發布重新生成的應用程序到out目錄下:
dotnet restore
dotnet publish -c Release -o out
     制作成鏡像同時運行應用程序,-p 設置訪問端口 前面為主機端口 后面位docker容器端口,-e為設置環境變量 這里設置變量ASPNETCORE_URLS=http://+:80,-it 運行前台程序, -d表示運行后台容器,--rm表示運行完成退出時刪除由這個鏡像生成的容器實例,這里就直接刪除了。
docker build -t app .
docker run -p 5000:80 -e "ASPNETCORE_URLS=http://+:80"  -it --name test --rm app
     在外網訪問一下,看到這個頁面說明今天成功了。

 


 
 
 


免責聲明!

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



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