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系統等還請自行配置。