Docker安裝及部署實例.Net Core


1.什么是Docker

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

2.為什么使用Docker

使用Docker容器技術可以再全平台發布應用和服務。總所周知,.Net平台一直因為不開源以及不能跨平台詬病。小編又是一名忠實的微軟粉,可是不能使用Linux作為實體服務器的.Net平台在現在分布式系統遍地,微服務縱橫的天下,真的是舉步維艱。還好有個Docker容器技術,解決這個問題,所以小編靠閑暇時間填了不少坑,也是部署出來了,這里跟大家分享一下。

PS:為什么不使用其他的方式(依賴框架等)來在linux上發布.NetCore應用。一次配置全平台都可以用呀!這還用說啊,帥啊!!!!

3.安裝Docker

安裝Docker有很多方式,小編也試了好幾種,但是因為國內網速的限制有些方式會很慢,甚至因為太慢暫停下載。而有些方式安裝完卻有很多很多的問題,這里小編也把自己遇到的坑分享給大家。

這里給大家分享兩種安裝方式,實測有效。Docker分兩個版本,Docker-ce和Docker-ee,后者是收費的,小編這里裝ce版本。

(1)使用yum安裝    

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

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

添加軟件源信息:

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

更新 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.總結

到這里吶今天的內容就到此結束了,感覺大家翻閱。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM