將Asp.Net Core3.1項目,使用Docker 部署到Centos 8


一、准備工具

Win 10

Centos 8

Visual Studio 2019

Docker Desktop  下載地址:https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe

二、Cenos 8安裝docker

1、安裝

1 yum install docker          安裝docker   
2 systemctl start docker.service  啟動docker服務
3 systemctl enable docker.service  設置docker服務開機自啟動

2、檢查

1 docker -v

 三、創建.net core 3.1項目並發布

1、創建項目

 注意:勾選啟用Docker支持,選擇Linux。

注意:將Dockerfile文件屬性改為:始終復制。

 2、生成項目,現在本地使用docker運行,保證項目正常運行。

第一次運行的時候,會提示你運行Docker Desktop,無腦點是。繼續運行會自動下載運行項目時所需要的鏡像,靜等complete即可。

3、本地運行成功

 4、本地發布

 發布后的文件結構

 5、修改Dockerfile文件地址

由於我們是發布到本地,vs幫我們自動生成的Dockerfile文件里,包含了生成—>發布—>運行的所有流程,在這里,我們只需要最后一步運行的數據就行了。

  dockerfile文件指令說明:

  • FROM -指定所創建鏡像的基礎鏡像
  • WORKDIR-配置工作目錄
  • EXPOSE-聲明鏡像內服務監聽的端口 (可以不寫,因為我們具體映射的端口可以在運行的時候指定)
  • COPY-復制內容到鏡像   (. .代表當前目錄)
  • ENTRYPOINT-啟動鏡像的默認人口命令

6、打包到Centos 8服務器,我這里使用的是:SecureCRT

 7、構建docker鏡像

  進入到服務器的相關文件夾路徑,輸入:

1 docker build -t mytest-mvc .

注意:結尾的 . 不能漏掉

參數解釋:

  •  -t 指定鏡像名稱 (只能小寫)
  •  .  表示build上下文為當前目錄,默認情況docker會使用上下文的根目錄找到Dockerfile文件

查看構建的鏡像,輸入:

1 docker image ls

 8、創建並運行容器

1 docker run --name myfirstWeb  -d -p 5001:2345  firstdocker

    參數解釋:

  •  --name  表示容器名稱(區分大小寫),也可以不指定,默認會生成
  •  -d          表示在后台以守護形式運行容器
  •  -p          表示外部端口與內部容器端口映射。關於-p的還有其他用法(https://www.cnblogs.com/williamjie/p/9915019.html)
  • 結尾       表示上一步創建的鏡像名稱

查看容器運行情況,輸入:

1 docker ps -a

 最后,我們在本地請求:

如果發現請求不了,多半是下面兩種情況:

 1、對外映射的端口沒開啟。

1 //查詢端口號XXX 是否開啟
2 firewall-cmd --query-port=XXX/tcp  
3 //開啟端口
4 firewall-cmd --zone=public --add-port=XXX/tcp --permanent
5 //重啟防火牆
6 firewall-cmd --reload

2、創建運行容器時監聽的端口弄錯了:

1 //查看容器運行日志
2 docker logs 容器ID


 容器相關常用命令:

1 //查看容器運行日志
2 docker logs  容器名稱/容器ID    
3 //停止運行容器
4 docker stop 容器名稱/容器ID    
5 //刪除容器
6 docker rm 容器名稱/容器ID   
7 //重啟容器服務 
8 systemctl restart docker


免責聲明!

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



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