此篇文章演示基本的基於docker部署.netcore服務,linux系統騰訊雲ubuntu,.net core版本3.1。 1.安裝docker apt install docker.io 2.拉取.net core依賴鏡像 docker pull mcr.microsoft.com/dotnet ...
此篇文章演示基本的基於docker部署.netcore服務,linux系統騰訊雲ubuntu,.net core版本3.1。
1.安裝docker
apt install docker.io
2.拉取.net core依賴鏡像
docker pull mcr.microsoft.com/dotnet/core/aspnet:latest
3.創建.net core3.1項目,選擇docker支持,會生成dockerFile配置文件如圖:
4.編寫dockerfile文件,經刪減後為:
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster
WORKDIR /app
EXPOSE 5000
COPY . .
ENTRYPOINT ["dotnet", "MyDockerApi.dll"]
5.發佈項目到本地
註意下,dockerFile文件一定要帶過來,接下來,將所有文件,壓縮成zip包。。最好是zip,不然linux解壓很麻煩
6.在linux系統根目錄,新建(mkdir)project文件夾,進入(cd)project文件夾,繼續新建myDockerApi文件夾,然後進入。
7.上傳剛纔的zip壓縮包,並解壓
上傳命令:rz -y,本地選擇,上傳進來,解壓命令:unzip -o MyDockerApi.zip
8.鏡像打包
docker build -t my1api . 註意最後有一個.,
9.創建基於該鏡像的docker容器,並啟動
命令:docker run --name API8082 -p 8081:5000 my1api ,參數解讀:
--name xxxxx:容器名字
8081:將liunx埠分配給該容器的埠
:5000:將物理機埠映射到docker程式的啟動埠
my1api:使用的鏡像名稱
可以看到,服務已經起來了,這時候,如果外部想要訪問服務,需要在騰訊雲防火牆新增出站埠8081
這時候,訪問服務介面:
使用命令,列出當前所有容器,狀態等等:
docker container ls -a
容器的啟動/停止命令:
docker start API8082(容器名稱/ID)
docker stop API8082(容器名稱/ID)
10.如果代碼更新了,怎麼辦
(1)將更新好的代碼上傳
(2)重新build鏡像
(3)停止docker容器
(4)刪除docker容器 docker rm 容器名稱/ID
(5)重新創建容器並啟動 docker run --name API8082 -p 8081:5000 my1api