ASP.NET Core 2.1 使用Docker運行

重要提示,本文爲 ASP.NET Core 2.1 若是你是 2.2 那麼請將文中的鏡像換爲 microsoft/dotnet:2.2.0-aspnetcore-runtime 便可,其餘操做同樣linux

1.新建一個 ASP.NET Core 2.1 項目

1529417901378

而後運行一下項目,確保咱們剛剛創建的項目能夠正常運行。git

1529418199419

2.編寫 Dockerfile

新建一個文本文件,命名爲 Dockerfilegithub

FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY . .
EXPOSE 80
ENTRYPOINT ["dotnet", "AspNetCore.Docker.dll"]

這裏咱們須要用到官方的鏡像:microsoft/dotnet:2.1-aspnetcore-runtimedocker

若是要嘗試更小的鏡像,能夠試試 microsoft/dotnet:2.1-aspnetcore-runtime-alpine ,這鏡像使用了alpine 一款精簡版極小的linux,可是隨之而來的就是閹割了一些功能,實際使用的時候須要測試,好比國際化支持,它默認在這個鏡像裏面沒有開啓,須要配置環境變量來開啓。shell

須要設置Dockerfile的以下屬性,保證其能複製到發佈目錄:vim

1529423322744

3.構建Docker鏡像

咱們將鏡像命名爲 :aspnetcoredocker瀏覽器

進入到發佈文件目錄,執行命令即可打包鏡像:bash

docker build -t aspnetcoredocker .

咱們能夠編寫 發佈+構建 的腳本。app

Windows:asp.net

文件名:build.bat

@echo off

echo "Windows Docker build"

cd ../AspNetCore.Docker

dotnet publish -c Release -o ../publish

cd ../publish

echo "publish success"

docker build -t aspnetcoredocker .

文件名:Linux:

build.sh

#!/bin/bash

echo Linux Docker build

cd ../AspNetCore.Docker

dotnet publish -c Release -o ../publish

cd ../publish

echo publish success

docker build -t aspnetcoredocker .

文件夾結構以下圖:

1529424418158

執行構建:

./build.sh

1529424671621

構建成功後能夠經過 docker images 命令查詢到咱們構建的鏡像:

1529424760009

若在linux下執行sh腳本時,遇到錯誤「-bash: ./build.sh: /bin/bash^M: bad interpreter: No such file or directory「,請經過vim/vi編輯sh腳本,按:建,輸入 set ff=unix,而後回車、wq保存便可

4.運行鏡像

經過命令運行

docker run --name=aspnetcoredocker -p 7777:80 -d  aspnetcoredocker

--name:指定容器名稱

-p:指定容器端口

-d:指定容器 後臺運行

出現一長串字符串,即是表示運行成功:

1529425263500

咱們也能夠經過 docker ps 命令,查詢咱們正在運行的容器:

1529425315363

咱們還能夠經過 docker logs <容器名稱或者id> 來查看啓動日誌:

1529425348621

5.驗證訪問

咱們能夠經過 curl命令來直接訪問咱們容器啓動的asp.net core 網站:

1529425443476

或者直接經過瀏覽器訪問:

1529425517018

至此,咱們經過Docker運行asp.net core 2.1應用程序就結束了。

6.資料

本文所用代碼:https://github.com/stulzq/BlogDemos/tree/master/AspNetCore.Docker

相關文章
相關標籤/搜索