日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

在docker中运行ASP.NET Core Web API应用程序

發(fā)布時間:2023/12/4 asp.net 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在docker中运行ASP.NET Core Web API应用程序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文是一篇指導(dǎo)快速演練的文章,將介紹在docker中運行一個ASP.NET Core Web API應(yīng)用程序的基本步驟,在介紹的過程中,也會對docker的使用進(jìn)行一些簡單的描述。對于.NET Core以及docker的基本概念,網(wǎng)上已經(jīng)有很多文章對其進(jìn)行介紹了,因此本文不會再詳細(xì)講解這些內(nèi)容。對.NET Core和docker不了解的朋友,建議首先查閱與這些技術(shù)相關(guān)的文檔,然后再閱讀本文。

先決條件

要完成本文所介紹的演練任務(wù),需要準(zhǔn)備以下環(huán)境:

  • Visual Studio 2015,或者Visual Studio Code,用于創(chuàng)建ASP.NET Core的Web API應(yīng)用程序。本文使用Visual Studio 2015

  • 如果使用Visual Studio 2015,則需要安裝.NET Core 1.0.0 – VS 2015 Tooling Preview 2。請點擊此處安裝

  • Microsoft .NET Core SDK,可以到微軟官方網(wǎng)站下載安裝

  • 一臺裝有Ubuntu 14.04.4 LTS的機器,可以是虛擬機。在Ubuntu中安裝docker CLI??梢园凑誨ocker網(wǎng)站上的步驟進(jìn)行安裝

  • 如果希望在Windows下使用docker,請確保Windows機器滿足下面的需求:

    • 64位Windows 10 Pro、Enterprise或者Education版本(Build 10586以上版本,需要安裝1511 November更新)

    • 在系統(tǒng)中啟用Hyper-V。如果沒有啟用,Docker for Windows在安裝過程中會自動啟用Hyper-V(這個過程需要重啟系統(tǒng))

有關(guān)Docker for Windows的內(nèi)容,我會在另外的文章中介紹。

演練步驟

使用Visual Studio 2015創(chuàng)建一個ASP.NET Core的Web API應(yīng)用程序

打開Visual Studio 2015,在新建項目的對話框中選擇.NET Core分類下的ASP.NET Core Web Application (.NET Core)項目模板,給項目命名為DockerWebAPI,然后單擊確定按鈕。

在New ASP.NET Core Web Application (.NET Core)對話框中,選擇Web API,然后點擊確定按鈕。

項目成功創(chuàng)建后,在解決方案瀏覽器中可以看到如下項目結(jié)構(gòu):

在此也不對ASP.NET Core的應(yīng)用程序結(jié)構(gòu)做過多介紹了。接下來,我們修改一下自動產(chǎn)生的ValuesController,使得GET方法返回當(dāng)前機器的機器名,如下:

?

打開Program.cs文件,在構(gòu)建WebHostBuilder的連貫方法鏈中,加入UseUrls調(diào)用,以便我們的應(yīng)用程序可以接受來自任何IP的請求。這就使得應(yīng)用程序在docker容器中也能接受HTTP請求:

OK,編譯后,在命令行使用dotnet run運行這個應(yīng)用程序:

打開瀏覽器,測試一下我們的應(yīng)用,運行成功:

將ASP.NET Core Web API應(yīng)用程序編譯成Docker Image

首先,進(jìn)入項目根目錄(也就是包含有project.json文件的這個目錄),使用dotnet publish命令發(fā)布應(yīng)用程序。這就會把編譯后的DLL連同依賴項一起,全部復(fù)制到bin/Debug/netcoreapp1.0/publish目錄下。此時,使用WinSCP類似的軟件,將該目錄下的所有內(nèi)容全部復(fù)制到Ubuntu的機器上(當(dāng)然,如果是在Windows 10下使用Docker,也就不需要這個復(fù)制的步驟)。復(fù)制完成后,在Ubuntu系統(tǒng)中可以看到所有的這些文件:

我們順便在Ubuntu中測試一下這個應(yīng)用程序,看ASP.NET Core Web API是否能夠在Linux的系統(tǒng)中與Windows下有著相同的用戶體驗。此時,在這個目錄下運行dotnet DockerWebAPI.dll命令(要運行dotnet命令,就需要在Ubuntu中安裝.NET Core CLI,也可以到微軟官方網(wǎng)站下載安裝,但對于本文的演練來說,這一步是不一定需要的),可以看到下面的界面:

使用curl命令測試一下:

測試成功。

接下來,在這個包含有DockerWebAPI.dll文件的目錄下,新建一個Dockerfile文件,使用vim或者nano等文本編輯器,輸入以下內(nèi)容(#開頭的行為注釋行,可以不輸入):

1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 6 17 18 19 20 # 基于microsoft/dotnet:latest構(gòu)建Docker Image FROM microsoft/dotnet:latest # 進(jìn)入docker中的/usr/local/src目錄 RUN cd /usr/local/src # 創(chuàng)建DockerWebAPI目錄 RUN mkdir DockerWebAPI # 設(shè)置工作路徑 WORKDIR /usr/local/src/DockerWebAPI # 將當(dāng)前文件夾下的所有文件全部復(fù)制到工作目錄 COPY *.* ./ # 向外界暴露5000端口 EXPOSE 5000 # 執(zhí)行dotnet DockerWebAPI.dll命令 CMD ["dotnet", "DockerWebAPI.dll"]

關(guān)于Dockerfile的定義,我們暫不討論,請參考Docker的官方文檔。

仍然在當(dāng)前目錄下,執(zhí)行以下命令,創(chuàng)建Docker Image:

1 docker build -t daxnet/docker-webapi .

注意,千萬別省略了最后一個點號,它表示采用當(dāng)前路徑的Dockerfile來生成Docker Image。如果是第一次生成,由于需要下載microsoft/dotnet:latest這個Docker Image作為基礎(chǔ)Image,所以會比較慢(國內(nèi)網(wǎng)速原因,你懂的)。如果成功的話,大致可以看到以下畫面:

在Docker Container中運行ASP.NET Core Web API應(yīng)用程序

現(xiàn)在,我們就可以使用docker run來執(zhí)行剛才產(chǎn)生的Docker Image了。docker run會把Docker Image加載到Docker Container中,然后執(zhí)行由Dockerfile指定的命令(也就是dotnet DockerWebAPI.dll命令)。docker run的命令如下:

docker run -it -p 8080:5000 daxnet/docker-webapi

在這條命令中:

  • -it參數(shù)表示需要提供一個模擬的shell環(huán)境,并要求有用戶交互功能,這樣當(dāng)我們按下Ctrl+C的時候,就可以停止我們的應(yīng)用程序

  • -p 8080:5000參數(shù)表示需要將Docker Container的5000端口映射到主機環(huán)境的8080端口,也就是客戶端可以直接通過8080端口訪問我們的應(yīng)用程序

  • daxnet/docker-webapi參數(shù)指定了需要運行的Docker Image。此處采用默認(rèn)的latest標(biāo)簽

運行后,可以看到如下界面:

讓我們測試一下,在Linux中使用curl命令調(diào)用我們的服務(wù),注意,與之前的測試相比,端口號需要由5000改為8080:

當(dāng)然,也可以在另一臺機器的瀏覽器中調(diào)用:

事實上,這時返回的機器名,已經(jīng)是Docker容器的ID值了:

總結(jié)

本文通過快速地對各個步驟的描述,介紹了使用Visual Studio 2015創(chuàng)建ASP.NET Core WebAPI應(yīng)用程序,并在Docker中運行該應(yīng)用程序的方法。有些地方可能描述得不是很清楚,如有疑問歡迎留言討論。今后爭取能夠更多地分享Visual Studio 2015、Docker、.NET Core等相關(guān)的實踐經(jīng)驗。

相關(guān)文章:

  • docker4dotnet #1 – 前世今生 & 世界你好

  • docker4dotnet #2 容器化主機

  • docker – 你應(yīng)該知道的10件事

  • ASP.NET Core Docker部署

  • docker4dotnet #3 .net猿和小鯨魚的蘋果山之旅

  • 我為什么用docker-compose來打包開發(fā)環(huán)境

  • Win10上運行Docker

原文地址:http://www.cnblogs.com/daxnet/p/5782019.html


.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關(guān)注


總結(jié)

以上是生活随笔為你收集整理的在docker中运行ASP.NET Core Web API应用程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。