1.基礎準備 1. ubuntu 18.04 2. docker version 18.09 3. netcore 2.1 2.簡介 自從netcore支持跨平臺之後,以及現在很多公司都是採用容器化部署,今天在比較空閑的時候學習了一下。 3.使用 3.1 創建netcore 項目 ,選擇api程式完 ...
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系統等還請自行配置。