一、准備工具
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