【Core】使用Docker在CentOS部署.NET Core項目

(1)安裝docker

sudo yum install docker

(2)啓動docker

systemctl  start docker.service

(3)配置開機啓動

systemctl enable docker.service

(4)查看docker版本信息

docker version

(5).net core 創建 Dockerfile 

(5)dockerfile

#基於 `microsoft/aspnetcore:2.0` 來構建我們的鏡像
FROM microsoft/aspnetcore:2.0

#拷貝項目publish文件夾中的所有文件到 docker容器中的publish文件夾中  
COPY . /publish

#設置工作目錄爲 `/publish` 文件夾,即容器啓動默認的文件夾
WORKDIR /publish

#設置Docker容器對外暴露80端口
EXPOSE 80

#使用`dotnet NetCore2Mvc.dll`來運行應用程序
ENTRYPOINT ["dotnet", "NetCore2Mvc.dll"]

 

 (6)發佈項目

 

 將發佈的文件拷到centos的core文件夾下

 

(7)生成鏡像

cd 到core文件夾下

sudo docker build -t demo-netcore .       (注意:最後空格後面有一個.)。

(9)查看生成的鏡像

sudo docker images

因爲,剛打包的鏡像demo-netcore是基於docker.io/microsoft/aspnetcore鏡像的,所以在打包demo-netcore的過程中,會優先從鏡像庫中拉取docker.io/microsoft/aspnetcore鏡像。

 

(10)運行docker容器

sudo docker run --name democore -d -p 54907:80 demo-netcore

democore 容器的名稱。

-d 後臺進程。

-p是進行宿主和容器之間端口的映射,(-p 宿主端口:容器端口)

 

 

 (11)檢驗docker容器是否運行成功

 sudo docker ps -a

 

(12)因爲運行docker容器的時候 進行了 端口映射  所以外部訪問端口 爲 54907

 

 查看本機IP : ip addr

 

 

 

(13)刪除鏡像

sudo docker rmi (鏡像ID)

 

(14)刪除容器

sudo docker rm xxxxxxxxx(容器id)

 

 刪除容器之前停止容器

sudo docker stop (容器id)

 

 (15)創建容器

 docker commit -p xxxxxxxxxxx(容器id) name(快照名稱)

 

16)保存本地tar備份

 docker save -o ~/xxxxxxxx.tar name(容器名稱)

 

(17)Xftp5物理導出到本地

 

(18)恢復docker備份

 

(19)進入docker容器內部

docker exec -it 容器id /bin/bash

 

(20)退出容器

Ctrl+D 或者 exit

 

(21)查看docker 日誌

docker logs -f -t --since="2017-05-31" --tail=10 alibaba-vica-netapi

docker logs 6dc1e5f74c0

 

--since : 此參數指定了輸出日誌開始日期,即只輸出指定日期之後的日誌。

-f : 查看實時日誌

-t : 查看日誌產生的日期

-tail=10 : 查看最後的10條日誌。

alibaba-vica-netapi : 容器名稱

 

項目需要重新發布時:

將發佈文件拷到core文件夾下

將之前的容器停掉,

重新build一個鏡像demo-netcore2

再次run一個容器democore2  端口映射

 

就可以看到新發布的內容了

如果想回退到上個版本 只需要停掉當前容器,run demo-netcore鏡像

 

$ sudo docker ps // 查看所有正在運行容器
$ sudo docker stop containerId // containerId 是容器的ID

$ sudo docker ps -a // 查看所有容器
$ sudo docker ps -a -q // 查看所有容器ID

$ sudo docker stop $(docker ps -a -q) // stop停止所有容器
$ sudo  docker rm $(docker ps -a -q) // remove刪除所有容器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章