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