【第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
