Docker安裝及部署實例.Net Core

1.什麼是Docker

Docker 是一個開源的應用容器引擎,讓開發者能夠打包他們的應用以及依賴包到一個可移植的容器中,而後發佈到任何流行的 Linux 機器上,也能夠實現虛擬化。容器是徹底使用沙箱機制,相互之間不會有任何接口。linux

2.爲何使用Docker

使用Docker容器技術能夠再全平臺發佈應用和服務。總所周知,.Net平臺一直由於不開源以及不能跨平臺詬病。小編又是一名忠實的微軟粉,但是不能使用Linux做爲實體服務器的.Net平臺在如今分佈式系統遍地,微服務縱橫的天下,真的是舉步維艱。還好有個Docker容器技術,解決這個問題,因此小編靠閒暇時間填了很多坑,也是部署出來了,這裏跟你們分享一下。docker

PS:爲何不使用其餘的方式(依賴框架等)來在linux上發佈.NetCore應用。一次配置全平臺均可以用呀!這還用說啊,帥啊!!!!centos

3.安裝Docker

安裝Docker有不少方式,小編也試了好幾種,可是由於國內網速的限制有些方式會很慢,甚至由於太慢暫停下載。而有些方式安裝完卻有不少不少的問題,這裏小編也把本身遇到的坑分享給你們。api

這裏給你們分享兩種安裝方式,實測有效。Docker分兩個版本,Docker-ce和Docker-ee,後者是收費的,小編這裏裝ce版本。緩存

(1)使用yum安裝    

安裝一些必要的系統工具:PS:sudo表示以管理員權限執行,如是root用戶(最高權限)可不輸入服務器

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2app

添加軟件源信息:框架

$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repocurl

更新 yum 緩存:分佈式

$ sudo yum makecache fast

安裝 Docker-ce:

$ sudo yum -y install docker-ce

啓動 Docker 後臺服務

$ sudo systemctl start docker

測試運行 hello-world

$ docker run hello-world

(2)使用腳本安裝 Docker    吃網速,網速快可選擇

確保 yum 包更新到最新。

$ sudo yum update

執行 Docker 安裝腳本。

$ curl -fsSL https://get.docker.com -o get-docker.sh

$ sudo sh get-docker.sh

啓動 Docker 進程。

$ sudo systemctl start docker

驗證 docker 是否安裝成功並在容器中執行一個測試的鏡像

$ sudo docker run hello-world

(3)Docker經常使用命令

$ docker pull 鏡像名                //拉取鏡像,我要部署的應用可能會須要依賴一些基礎鏡像

$ docker build 自定義鏡像名 .                //把本身的項目編譯成鏡像,部署到Docker容器中,別忘了這個‘.’!!!

$ docker images                //查看全部鏡像

$ docker run --name=容器名 -p 主機環境端口:Docker容器映射端口 -d  鏡像名            //運行鏡像

$ docker ps -a                    // 查看容器運行狀態,up運行成功

$ docker logs -t -f 容器名       //查看運行日誌,能夠從中看到出現的問題

4.部署.NetCore應用到Docker

(1)新建一個 ASP.NET Core 3.0 項目

 

 

而後運行一下項目,確保咱們剛剛創建的項目能夠正常運行

(2)編寫Dockerfile,並設置屬性複製到生成文件

FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim

RUN cd /usr/local/src 

RUN mkdir MyTestApi 

WORKDIR /usr/local/src/MyTestApi

COPY . . 

EXPOSE 80 

ENTRYPOINT ["dotnet", "MyTestApi.dll"] 

(3)發佈項目

 

(4)將Dockerfile文件複製到發佈成功的目錄,並所有上傳到服務器

 

(5)構建Docker鏡像

進入到發佈文件目錄(Dockerfile文件所在目錄),執行命令即可打包鏡像

$ docker pull microsoft/dotnet:3.0-aspnetcore-runtime        //拉取基礎鏡像

$ docker build -t mytestapi .            //構建鏡像  別忘了這個點「.」!!!

$ docker run --name=mytestapi -p 80:80 mytestapi        //運行鏡像

出現一長串字符串,即是表示運行成功

 

5.部署.NetCore到Docker遇到的問題

 

 
 

若是更新.net core代碼怎麼辦,使用暴力方法:

進入目錄
cd /usr/local/src/mytestapi

中止
docker stop mytestapi

刪除
docker container rm mytestapi

編譯
docker build -t mytestapi .

運行
docker run --name=mytestapi -p 80:80 mytestapi

6.總結

到這裏吶今天的內容就到此結束了,感受你們翻閱。

相關文章
相關標籤/搜索