1. 程式人生 > >在Docker容器中運行.Net Core web Api項目

在Docker容器中運行.Net Core web Api項目

c99 images sof 以及 store .com 查看 .html microsoft

安裝Docker環境

參考本人這篇《CentOS 7 下Docker的安裝》文章進行安裝以及環境配置,這裏不做贅述。

通過.NetCore開發WebApi項目

1. 創建.Net Core Web項目,如下圖所示:

技術分享

這裏我們選擇Web API模板進行項目創建,為了簡單起見,我們不做身份驗證,也不選擇 Host in cloud,點擊ok項目及創建好

技術分享

默認的項目文件結構如圖所示:

技術分享

在cmd 執行dotnet restore 恢復依賴包

技術分享

運行項目,在瀏覽器就可以查看到結果

技術分享

至此,一個簡單的.Net Core開發的Web API項目就做好了

現在我們就把它放到Docker中運行。

Docker中運行

1. 首先我們先修改一下項目文件,主要是Program.cs和project.json

技術分享

在Program.cs文件中加 .UseUrls("http://*:9001")是為了讓來自所有IP的請求都可以訪問這個API,當然也可以寫成.UseUrls("http://0.0.0.0:9001") 作用一樣,9001是公布出去的端口號。

另外一個修改的文件就是project.json,註釋掉type那行以及scripts。添加

"runtimes": {
"debian.8-x64": { }
}

因為我這裏代碼目標運行的機器是debian系統的docker鏡像,所以runtimes寫成了debian.8-x64。你可以按照你實際情況配置

技術分享

技術分享

2. 發布程序到文件系統

技術分享

發布成功後,會在項目目錄下面生成發布好的文件

技術分享

將發布成功的文件打個壓縮包,上傳到Linux機器上,並且解壓到一個目錄中, 進入到這個目錄中

新建一個Dockerfile文件 <touch Dockerfile>, 這個文件的作用是構建一個Docker運行鏡像。其中所需要填寫的內容如下:



 1 FROM microsoft/dotnet:latest
 2 
 3 RUN mkdir -p /usr/src/app/DockerTest
 4 
 5 COPY . /usr/src/app/DockerTest
 6 
 7 WORKDIR /usr/src/app/DockerTest
8 9 EXPOSE 9002 10 11 CMD ["dotnet", "DockerTest.dll", "--server.urls", "http://*:9002"]
上面內容第1行代表在microsoft/dotnet:latest基礎上面構建Docker鏡像(這個微軟dotnet鏡像是以debian系統構建生成的)

第2行是表示新建一個DockerTest目錄

第3行是將當前目錄下面的所有文件都復制到剛才新建的DockerTest目錄下面

第4行是將程序工作目錄切換到DockerTest

第5行是將9002端口公布出去

第6行是執行dotnet DockerTest.dll 命令

Dockerfile文件編輯好後,執行docker build -t docker_test . 如下圖所示生成docker_test鏡像文件

技術分享

通過docker images命令可以查看剛才新建的docker_test鏡像

技術分享

運行docker_test鏡像創建出來的容器

技術分享

通過瀏覽器訪問此docker容器Host起來的service

技術分享

技術分享 技術分享 技術分享 技術分享 技術分享 技術分享 技術分享 技術分享 技術分享 技術分享 技術分享

在Docker容器中運行.Net Core web Api項目