使用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

 

posted @ 2021-12-26 19:42  民工黑猫  阅读(2276)  评论(0编辑  收藏  举报