1. 程式人生 > 實用技巧 >【Core】.NET Core 部署( Docker + CentOS)

【Core】.NET Core 部署( Docker + CentOS)

閱讀目錄

CentOS下 Docker安裝

回到頂部

使用指令碼安裝 Docker

(1)安裝docker

sudo yuminstalldocker

(2)啟動docker

systemctl start docker.service

(3)配置開機啟動

systemctlenabledocker.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 -tdemo-netcore . (注意:最後空格後面有一個.)。

(9)檢視生成的映象

sudodockerimages

因為,剛打包的映象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 addr

(13)刪除映象

sudo docker rmi (映象ID)

(14)刪除容器

sudo docker rm xxxxxxxxx(容器id)

刪除容器之前停止容器

sudodockerstop (容器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 埠對映

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

如果想回退到上個版本只需要停掉當前容器,rundemo-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刪除所有容器

https://www.cnblogs.com/chuankang/p/9474591.html