【愚公系列】2023年01月 Docker容器 Compose集群部署.NET Core应用

举报
愚公搬代码 发表于 2023/01/31 21:40:57 2023/01/31
【摘要】 前言 1.Compose 简介Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。Compose 使用的三个步骤:使用 Dockerfile 定义应用程序的环境。使用 docker-compose.yml 定义构成应用程序的服务,...

前言

1.Compose 简介

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
Compose 使用的三个步骤:

  • 使用 Dockerfile 定义应用程序的环境。
  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
  • 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

Docker-Compose详解可以看这篇文章:https://codeboy.blog.csdn.net/article/details/109463627
在这里插入图片描述

一、Compose集群部署.NET Core应用

本片文章的基本架构如下:
在这里插入图片描述
前提条件自然是需要安装Docker Desktop的,具体安装看我其他文章,运行后的Docker Desktop如下:
在这里插入图片描述

1.创建应用

1、创建一个.NET 7的项目

在这里插入图片描述
2、运行应用
可以看到单个应用运行成功了
在这里插入图片描述

2.发布应用

1、发布应用复制到ubuntu系统

在这里插入图片描述

2、编写Dockerfile

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

COPY . .

ENTRYPOINT ["dotnet", "WebBaweiDocker.dll"]

在这里插入图片描述

3、编写Docker-Compose.yml

# 项目版本号
version: "3.4"
services:
  service1:                #自定义的服务的名称
      build:                #第一个需要编译成镜像
        context: /home/xutao/桌面/123/publish  #这是编译的文件目录
      image: composenttest.1130   #代表使用哪一个镜像
      ports:       #代表主机和容器中的端口映射  
        - 8011:80/tcp
      command: ["dotnet","/app/WebBaweiDocker.dll","--port=8011","--weight=1"]
  service2:                #自定义的服务的名称
      image: composenttest.1130   #代表使用哪一个镜像 这里使用第一个编译好的镜像 #需要执行的命令,和容器运行端口号
      ports:       #代表主机和容器中的端口映射  
       - 8012:80/tcp
      command: ["dotnet","/app/WebBaweiDocker.dll","--port=8012","--weight=1"] #需要执行的命令,和容器运行端口号
  service3:                #自定义的服务的名称
      image: composenttest.1130   #代表使用哪一个镜像 这里使用第一个编译好的镜像
      ports:       #代表主机和容器中的端口映射  
       - 8013:80/tcp
      command: ["dotnet","/app/WebBaweiDocker.dll","--port=8013","--weight=1"]
  nginx:    #安装nginx 
       image: nginx:latest    #代表使用哪一个镜像 latest表示版本号
       ports:
         - 8006:80/tcp  #映射的端口
       volumes:
        - /opt/webroot/nginx/nginx.conf:/etc/nginx/nginx.conf  #拷贝到容器中的负载均衡配置文件

注意这边没配置nginx负载均衡,需要移除nginx配置项目,留着只是为了记录下

upstream myfirst {   
  server 192.168.240.160:8011 weight=5; 
  server 192.168.240.160:8012 weight=6;  #热备
  server 192.168.240.160:8013 weight=1;
}

 location / {
      proxy_pass http://myfirst;  
 }

在这里插入图片描述

使用Docker-Compose配置3个web的docker容器,对外的映射端口分别是8011,8012,8013。

4、运行Docker-Compose.yml

docker-compose up
#如想在后台运行,需要在代码后面加上-d
docker-compose up -d

在这里插入图片描述

在这里插入图片描述
对于样式文件可以把静态文件拷贝到发布文件夹下

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。