1. 程式人生 > >.NetCore中的程式通過Docker在CentOS中部署

.NetCore中的程式通過Docker在CentOS中部署

基礎說明

安裝Docker過程就略過了

建立一個Asp.Net Core程式

啟用Docker支援,會生成Dockerfile檔案,接下來看下這個檔案,當然不同的版本生成的具體可能不一致

FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY . .
EXPOSE 80
ENTRYPOINT ["dotnet", "DockerTest.dll"]

具體內容含義這裡就介紹了,這裡需要說明下的就是如下:

先看下:FROM中的dotnet映象,在CentOS中pull拉取相關映象,檢視下映象

當然這裡Dockerfile中也可以用其他的映象

接下來就是遇到的一些問題,當我們把.NetCore釋出的程式包放到CentOS中,釋出時的時候注意要設定Dockerfile檔案的釋出屬性

這樣釋出才會把Dockerfile檔案打包到publish,當然你沒有設定也沒有太多關係,我們可以在CentOS中釋出的目錄中建立一個Dockerfile也是可以的

製作映象

進入釋出檔案目錄

cd publish
docker build -t liyouming .

我製作了一個liyouming的映象,下面通過

docker images

檢視下映象

執行到容器

 通過下面的執行到容器中

docker run --name=liyouming_iamge1 -P -d liyouming

docker run --name=liyouming_iamge2 -p 33333:80  -d liyouming

-P:隨機分配埠,-p:指定對映的埠

--name:容器名稱  -d:依賴的映象名稱

兩個容器都執行成功了,接下來通過命令檢視下

docker ps

檢視在執行的容器

可以看到依賴Image映象名稱,埠情況,已經容器名稱

接下來通過這2個埠訪問下程式,當然你也可以通過curl ip:埠檢視

 

 

 

 

 部署起來特別方便,短時間能部署很多,最後把這些常用命令總結下

docker build -t 映象名稱 .
docker run --name=容器名稱 -p 33333:80 -d 映象名稱
docker images
docker ps
docker ps -a
docker stop containerid或containername
docker start containerid或containername
docker restart containerid或containername
docker rm containerid或containername
docker rmi imageid或imagename