使用docker-compose部署.net6(.net core)項目


【第1步】創建一個.net6項目

使用visual studio創建一個.net6 mvc或webapi項目,項目取名為:dotnet6Demo

 

【第2步】創建Dockerfile文件

在mvc項目中添加Dockerfile文件,設置為始終復雜,文件內容為:

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
#容器工作目錄
WORKDIR /app

#容器入口點
ENTRYPOINT ["dotnet", "dotnet6Demo.web.dll"]

 

【第3步】創建docker-ocmpose.yml文件

在mvc項目創建docker-compose.yml文件,設置為始終復制,內容為:

version: "3.8"
services:
  demo-web:
    container_name: my-demo-web
    build:
      context: ./
      dockerfile: Dockerfile
    image: dotnet6-demo:0.0.2
    ports:
      - 8082:80
    networks:
      - my-network
    volumes:
      - /mydata/demo-web/logs:/logs
    restart: always
    #depends_on:
    # - myredis
  #myredis:
  #  image: redis:6.2.6

networks:
  my-network:
    external:
     name: mynet

 

配置說明:

demo-web 服務名稱,可以配多個服務。

container_name 容器名稱。

build 構建鏡像路徑及自定義dockerfile名稱。

image 鏡像名。

ports 對外暴露的端口(8002)與容器內部端口(80)。

networks external 表示使用自定義網絡,自定義網絡mynet必須先創建。

values 數據卷,帽號左邊是宿主機目錄(必須先創建),右邊是容器內目錄(logs)。

restart: alway  docker啟動時或容器掛掉時自動重啟。

depends_on 依賴的服務,demo-web服務啟動前必須先啟動的服務。

 

【第5步】 創建自定義網絡

如果網絡已經創建,忽略這一步。

docker network create --subnet 172.19.0.0/16 --gateway 172.19.0.1 mynet

 

【第5步】用docker-compose 創建並運行容器

將.net6Demo項目發布到本地文件夾,然后將發布后的文件上傳到centos服務的 /wwwroot/dotnet6-demo 目錄。

docker-compose 必須先安裝,安裝方法參考:https://www.cnblogs.com/yyee/p/15731800.html

進入/wwwroot/dotnet6-demo 目錄,運行:

docker-compose up -d --build

 

docker-compose常用命令
獲得一個命令的幫助
docker-compose 命令 --help

構建並啟動所有容器,如果鏡像存在就重新構建
docker-compose up -d --build

啟動所有服務
docker-compose up -d

構建啟動nignx容器               
docker-compose up -d nginx       

-f 指定使用的Compose配置文件啟動,默認為docker-compose.yml,可以多次指定。
docker-compose -f docker-compose.yml up -d

運行一個服務,並在服務上執行一個命令
docker-compose run 容器id或容器名 ip addr

登錄到nginx容器中             
docker-compose exec nginx bash

此命令將會停止 up 命令所啟動的容器,並移除網絡
docker-compose down

列出項目中運行的所有容器
docker-compose ps

列出項目中運行及未運行的所有容器
docker-compose ps -a

列出所有運行的服務容器
docker-compose ls

列出所有服務容器(包括未運行的容器)
docker-compose ls -a

重新啟動nginx容器
docker-compose restart nginx          

構建鏡像          
docker-compose build nginx            

不帶緩存的構建       
docker-compose build --no-cache nginx     

查看各個服務容器內運行的進程      
docker-compose top              

查看nginx的實時日志               
docker-compose logs -f nginx        

列出 Compose 文件包含的鏡像           
docker-compose images 

驗證文件配置,當配置正確時,不輸出任何內容,當文件配置錯誤,輸出錯誤信息。                         
docker-compose config                

以json的形式輸出nginx的docker日志           
docker-compose events --json nginx        

暫停nignx容器     
docker-compose pause nginx         

恢復ningx容器            
docker-compose unpause nginx      

刪除容器(刪除前必須關閉容器,執行stop)             
docker-compose rm nginx                       

強制刪除容器(不必先關閉容器)             
docker-compose rm -f nginx    

停止nignx容器         
docker-compose stop nginx       
    
啟動nignx容器           
docker-compose start nginx     

重啟項目中的nignx容器                
docker-compose restart nginx               

下載依賴的鏡像
docker-compose pull   

推送服務依的鏡像
docker-compose push

設置指定服務運行的容器個數。通過service=num的參數來設置數量
docker-compose scale web=3 db=2

查看版本信息
docker-compose version

 


免責聲明!

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



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