netcore程序部署到docker


1.基礎准備 

1. ubuntu 18.04

 2. docker version 18.09 

3. netcore 2.1 

 2.簡介

 自從netcore支持跨平台之后,以及現在很多公司都是采用容器化部署,今天在比較空閑的時候學習了一下。

 3.使用 

 3.1 創建netcore 項目  ,選擇api程序完成創建

 

 

3.2 添加dockerfile

項目右鍵=》添加=》docker支持,添加成功之后會生成一個dockerfile文件,打開該文件,系統自動生成了一堆代碼,但是在發布的時候發現不可用,因此從網上找了下面這種方式進行發布,把dockerfile屬性改為始終復制,發布文件的時候直接把dockerfile文件也一塊發布,如下圖配置的dockerfile文件:

 

 

 

 

FROM microsoft/dotnet:latest #所需依賴
WORKDIR /web #容器中系統工作空間
#拷貝當前文件夾下的文件到容器中系統的工作空間(注意:“.”后面有空格)
COPY . ./ 

EXPOSE 80   #對外提供的端口號
 EXPOSE 443

#容器中使用 ["dotnet","系統啟動的dll"] 來運行應用程序
ENTRYPOINT ["dotnet", "testDocker.dll"]

 

3.3 發布

跟以往發布net程序一樣選擇文件系統進行發布:

 

3.4 安裝asp.net core鏡像

sudo docker pull microsoft/dotnet

 因為我們在dockerfile中要求的from鏡像是microsoft/aspnetcore:latest,所以下載的時候我們直接pullmicrosoft/dotnet,如果下載慢的話 可以配置國內鏡像站,這里我用的阿里雲的鏡像

 

 

 

 

sudo vi /etc/apt/sources.list

鏡像下載完成之后輸入sudo docker images 檢查一下是否下載成功,下圖中箭頭所指就是我們下載的鏡像,到此需要准備工作已經完成。

 

 

 

sudo docker images

 

3.5 把文件上傳到liunx指定文件夾當中

 本人所用sudo rz 把文件上傳到liunx當中(如果您的linux系統沒有安裝,在終端輸入:

sudo apt-get install lrzsz 進行自動安裝),圖中所示,剛才所發布的文件,全部上傳到了liunx系統上的web文件夾當中

 

 

 

sudo apt-get install lrzsz
sudo rz

 

3.6 build 鏡像

在build的時候注意,命令最后一定要有個".", 並且鏡像名稱也不允許出現大寫,如果想帶上版本號的話 可以輸入命令:

 

 

 

 

sudo docker build -t web:v0.1 .

  ,如果不輸入默認顯示tag的latest

 

build之后就可以查看鏡像列表:sudo docker images,下圖中web  就是我們剛才所生成的鏡像文件:

 

 

 

sudo docker images

 

3.7 運行build的鏡像

 

 

 

sudo docker run -d -t -p 5000:80 web  #運行鏡像

sudo docker ps  #查看正在運行的容器

sudo docker ps -a #查看所有容器信息

 

 

 

 

 

 
        

 

3.8 測試可正常訪問

 

4.小結

在整個發布流程中涉及一些需要提前准備的例如docker環境,linux系統等還請自行配置。

 


免責聲明!

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



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