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

    在發佈ASP.NET Core網站之前,先介紹一下DaoCloud 一個免費的docker雲容器服務平臺。登錄官方網站,建立一臺docker主機,這臺主機有120分鐘的使用時間,對於鄙人學習使用正好合適。這臺docker主機通常是ubuntu主機,同時docker裏面已經集成了一些鏡像例如:mysql 、nginx等。html

  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中。mysql

        在製做鏡像時咱們須要建立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
     在外網訪問一下,看到這個頁面說明今天成功了。
相關文章
相關標籤/搜索