Docker-Compose一键部署Ningx+Asp.net core站点+Redis

简介: 生产环境更新追求快速平稳,Docker-Compose 通过一个配置文件来管理多个Docker容器,在配置文件中services来定义,然后使用脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器的应用场景,实现环境的快速搭建。

生产环境更新追求快速平稳,Docker-Compose 通过一个配置文件来管理多个Docker容器,在配置文件中services来定义,然后使用脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器的应用场景,实现环境的快速搭建。

1.创建asp.net core示例站点

使用vs2017创建一个Asp.net core MVC站点,引入Redis,主要是为了实现分布式缓存,实现一些演示内容。然后编写dockerfile,创建站点镜像,这些过程有很多参考资料,这里不再赘述。

2.创建docker-compose.yml文件
文件内容如下,创建了两个web站点容器,连接redis容器。 nginx对外暴露端口80,可以访问web1和web2,修改nginx配置,反向代理,分发请求到两个web应用,nginx配置参考3


version: '3'

services:
   xxx_mvc:
        container_name: web
        image: registry.cn-shenzhen.aliyuncs.com/xxx/web
        environment:
            - ASPNETCORE_ENVIRONMENT=Production 
        expose:
            - 80
        entrypoint: ["dotnet", "XXX.Web.Mvc.dll"]  
        restart: always 
        links:
          - redis
        volumes:
            - "./appsettings.Production.json:/app/appsettings.Production.json"   
   
            
    xxx_mvc_2:
        container_name: web-2
        image: registry.cn-shenzhen.aliyuncs.com/xxx/web 
        environment:
            - ASPNETCORE_ENVIRONMENT=Production 
        expose:
            - 80 
        entrypoint: ["dotnet", "XXX.Web.Mvc.dll"]  
        restart: always 
        links:
          - redis
        volumes:
            - "./appsettings.Production.json:/app/appsettings.Production.json"   
   
 
    nginx:
      container_name:xxx-nginx
      image: nginx
      ports:
        - "8080:80" 
      links:
        - xxx_mvc:web1
        - xxx_mvc_2:web2 
      restart: always
      volumes:
        - "./nginx-about/nginx.conf:/etc/nginx/nginx.conf:ro"
  
   
    redis:
      image: redis
      restart: always
      expose:
        - 6379
    

3.Nginx配置文件

upstream web{
    ip_hash; 
    server web1:80; #1号  
    server web2:80; #2号 
}

server {
    listen        80;
    server_name   example.com *.example.com;
    location / {
        proxy_pass         http://web;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

4.执行docker-compose up 命令
连接服务器,新建目录上传相关文件后,在目录中执行docker-compose up ,命令成功将自动完成包括服务的创建和启动, 顺利的话,访问 http://xxx:8080就可以看到站点页面了。

祝好运:)

目录
相关文章
|
10月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
4248 4
|
11月前
|
存储 Docker Python
docker 部署 sftp
本文介绍SFTP服务的部署与配置,包括users.conf用户配置规则、Docker容器运行命令及上传目录权限说明,重点解析atmoz/sftp镜像的chroot机制与子目录映射,确保用户登录后正确访问/upload目录,并提供Python脚本实现文件上传示例。
871 12
docker 部署 sftp
|
11月前
|
运维 Linux 数据库
基于 Docker 部署 n8n 指南,新手一看就会
本教程详解如何通过 Docker 快速部署开源自动化工具 n8n,适合新手快速上手。内容涵盖官方部署步骤、常见难点及第三方一键部署方案,助你高效搭建自动化工作流平台。
2386 6
|
10月前
|
开发框架 .NET C#
ASP.NET Core Blazor 路由配置和导航
大家好,我是码农刚子。本文系统介绍Blazor单页应用的路由机制,涵盖基础配置、路由参数、编程式导航及高级功能。通过@page指令定义路由,支持参数约束、可选参数与通配符捕获,结合NavigationManager实现页面跳转与参数传递,并演示用户管理、产品展示等典型场景,全面掌握Blazor路由从入门到实战的完整方案。
721 6
|
10月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
467 5
|
10月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
2924 8
|
10月前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
8528 8
|
10月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
1343 4
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
837 5