.Net Core3.1 使用Docker 部署在Centos 7


以前一直很好奇docker是個什么玩意,今天終於閑下來去玩一下了,關於docker的介紹以及優點介紹,相信大家都有去看過一點文章,我是通過這篇文章了解到docker,里面的作者也有寫一系列的教程,大家可以去看看https://www.cnblogs.com/ityouknow/category/1173004.html

接下來就是實戰了:

安裝 docker (1.安裝docker,2.啟動docker服務 3.開機自動啟動docker服務) 

1 yum install docker     
2 systemctl start docker.service
3 systemctl enable docker.service

 

    檢查是否安裝正常,顯示出版本就證明可以了:

docker -v

   

 

 

 

 

創建項目

   隨意創建一個mvc網站項目

 

 

 

 

本地發布驗證程序是否運行正常,並且Dockerfile屬性要設置為 始終復制

 

 

 

 

   

 

 

 

 

  

  ps:默認啟動端口是5000,可以修改appsetting.json文件,添加urls節點指定啟動端口 例如: urls:"http://*8068"   。還有其他指定端口方法和原理,參考:https://www.cnblogs.com/cgyqu/p/12169014.html

 

 這里由於我的服務器5000已經有了,所以改成8068

 

 

 

  運行正常

 

 

 

 

 

 

 

 

   

 

 

修改Dockerfile文件

    由於我們已經自己生成發布了在本地了,而vs幫我們自動生成的文件里面,包含了生成->發布->運行,所以這里,我們只需要運行的命令就行

    修改為:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]

 

  

   dockerfile文件指令說明:

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

 

打包到服務器

    這里我們使用MobaXterm或者xftp等工具上傳上去:

 

 

 

 

構建鏡像

    1.進入程序目錄,先驗證下程序能否啟動和訪問 

     

       訪問正常,關閉網站,開始構建鏡像:

       進入當前程序目錄,輸入構建命令   

docker build -t mytest-mvc .

                

      參數解釋:

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

           

 

      查看構建的鏡像

 

docker images

 

 

 

 

         

 

 

 

 

 

        

 

創建並啟動容器 

docker run --name myfirstWeb  -d -p 8041:8068  mytest-web

docker ps -a

 

    參數解釋:

     --name 表示容器名稱(區分大小寫),也可以不指定,默認會生成

     -d         表示在后台以守護形式運行容器

     -p         表示外部端口與內部容器端口映射。關於-p的還有其他用法(https://www.cnblogs.com/williamjie/p/9915019.html)

    mytest-web 是我們剛才創建的鏡像名稱

 

 

查看是否啟動成功

 

 

 

 最后去我們本地訪問

  

 

 

 

 

 

遇到的問題:

     1.dockerfile里面指定了EXPOSE 暴露端口,發現最終容器啟動的時候內部還是用的配置文件里面那個ulrs里面的端口,可以使用docker logs 容器名 查看啟動日志

     2.如果部署成功但發現訪問不了,一般都是防火牆問題

     3.在刪除容器后,重新添加發現會ip沖突或者其他錯誤,直接重啟一下docker

其他常用命令:

1 docker logs  容器名稱
2 docker attach 容器名稱或容器ID
3 docker exec -it 59ec /bin/bash  (如果提示“/bin/bash 未找到”之類的 可以改成:docker exec -it 59ec sh,退出ctrl+d)
4 docker stop 容器ID或容器名
5 docker kill 容器ID或容器名
6 docker rm 容器ID或容器名
7 systemctl restart docker

 

 全部命令: https://www.runoob.com/docker/docker-rmi-command.html

參考文章:https://www.cnblogs.com/ityouknow/category/1173004.html

 


免責聲明!

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



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