代码编织梦想


前言

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

在这里插入图片描述

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/aa2528877987/article/details/128769005