Docker-Compose 一键部署Ningx+.Net Core+Redis集群
在看该文章前,你需要对Docker有所了解。
1、创建WebApp应用程序
我使用的是.Net Core 1.0.1版本,创建一个MVC应用程序,并添加对Redis的引用。因为这些很基础,也很简单,这里就不详细说明了,特别提一下有关多站点会话保持问题,这里介绍两种方式,一种方式就是使用我博客里所说的方法 http://www.cnblogs.com/anech/p/6873604.html,还有一种方式就是采用Nginx代理的会话保持方案。
2、创建WebApp的Dockerfile文件
FROM microsoft/aspnetcore:1.0.1
ENTRYPOINT [ "dotnet" , "TestCentOS.dll" ]
ARG source=.
ARG port=80
ENV ASPNETCORE_URLS http: //+:$port
WORKDIR /app
EXPOSE $port
COPY $source .
|
大意就是:使用microsoft/aspnetcore:1.0.1基础镜像创建一个新的镜像,镜像在运行的时候执行dotnet TestCentOS.dll命令启动程序程序,把当前目录下的文件复制到镜像中,并暴露一个指定的端口,如果未指定使用默认80端口。
3、创建Nginx的Dockerfile文件
FROM nginx
EXPOSE 80
COPY default .conf /etc/nginx/conf.d/
|
大意是:基于nginx基础镜像创建一个新的镜像,对外暴露80端口,并把当前目录下的default.conf复制到镜像的/etc/nginx/conf.d/目录下。
default.conf文件内容:
upstream webapp{
server weba:80 max_fails=3 fail_timeout=20s;
server webb:80 max_fails=3 fail_timeout=20s;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
location / {
proxy_pass http: //webapp/;
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;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
|
这里是对nignx进行负载配置,配置两个应用的地址。
4、创建docker-compose.yml文件
version: '2'
services:
nginx:
image: testnginx
# build:
# context: .
# dockerfile: NginxDockerfile
ports:
- "5000:80"
links:
- weba
- webb
weba:
image: testweb
# build:
# context: .
# dockerfile: Dockerfile
expose:
- "80"
links:
- redis
webb:
image: testweb
# build:
# context: .
# dockerfile: Dockerfile
expose:
- "80"
links:
- redis
redis:
image: redis
expose:
- 6379
|
这里为了方便,我先执行上边的Dockerfile文件创建了一个.net core应用的镜像testweb和Nginx镜像testnginx,然后我们在创建集群的时候都使用这两个镜像。也可以省去这一步,直接使用Dockerfile来创建,此时会创建三个镜像,因为我们这里部署了两个应用weba和webb应用和一个nginx。
这个yml文件的大意是:创建并启动4个容器,一个nginx容器,两个webapp容器,一个redis容器,nginx对外暴露端口80与本机的5000端口映射,nginx容器可以访问两个webapp容器,两个webapp容器都可以访问redis容器。这样我们就实现了Nginx代理请求,并分发至后端两个webapp应用,两个webapp应用使用redis服务。
5、执行docker-compose.yml文件
1
|
docker-compose up
|
该命令十分强大,它将尝试自动完成包括构建镜像,(重新)创建服务,启动服 务,并关联服务相关容器的一系列操作。
此时访问http://localhost:5000/ 便可看到效果。
原文地址:http://www.cnblogs.com/anech/p/6873828.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
Docker-Compose 一键部署Ningx+.Net Core+Redis集群相关推荐
- Docker高级篇之Mysql主从复制、Redis集群扩容缩容配置案例详解
Docker之Mysql主从复制.Redis集群扩容缩容配置案例 1. 安装mysql主从复制 1.1 新建主服务器容器实例3307 1.2 进入/mydata/mysql-master/conf目录 ...
- MySQL NDB Cluster使用docker compose一键部署
本文主要用来学习MySQL NDB Cluster 解决学习过程中的痛点:需要开启N台VMware虚拟机,电脑不堪重负 使用docker部署,完美解决 本文使用的docker image: mysql ...
- 25分钟!一键部署Oracle 11GR2 HA 单机集群
无人值守安装Oracle 11GR2单机集群,只需要25分钟?没错,通过脚本静默安装,只需要25分钟,包括安装补丁,建库. 脚本下载链接:SHELL脚本进行oracle数据库一键安装,实现真正的无人值 ...
- 使用Docker Compose部署基于Sentinel的高可用Redis集群
大家一定非常熟悉如何利用Docker启动单个Redis容器用于开发环境,本文将介绍如何利用Docker Compose模板在本机和云端部署基于Sentinel的高可用Redis 3集群. Redis集 ...
- docker privileged作用_Docker环境下秒建Redis集群,连SpringBoot也整上了!
为了提高Redis的存储容量和响应速度,有时候我们需要搭建Redis集群.本文主要讲述Redis集群环境的搭建步骤以及如何在SpringBoot中整合使用Redis集群. SpringBoot实战电商 ...
- docker搭建redis集群
#!/bin/bash #Author: 臆想的一只猫 #Created: 2022-04-06 17:42:33 #Description: 搭建redis集群function menu() {cl ...
- Docker高级篇-Docker容器内Redis集群配置
Docker容器内Redis集群配置 1.三主三从集成配置 1.1.关闭防火墙.启动docker服务 1.2.新建6个docker容器实例 1.3.进入容器redis-node-1,构建主从关系 1. ...
- 集群环境下_Docker环境下秒建Redis集群,连SpringBoot也整上了!
为了提高Redis的存储容量和响应速度,有时候我们需要搭建Redis集群.本文主要讲述Redis集群环境的搭建步骤以及如何在SpringBoot中整合使用Redis集群. SpringBoot实战电商 ...
- Redis 集群使用(2)
Redis包含三种集群策略: 主从复制 哨兵模式 redis cluster 主从复制 在主从复制中,数据分为两类:主数据库(master)和 从数据库(slave).其中主从复制有如下特点: 主数据 ...
最新文章
- 欢迎加入北京智源AI社群
- 650服务器raid配置_DELL R730服务器配置RAID及安装服务器系统
- 【转载】几个比较靠谱的即时通讯软件
- 第二章 Java多线程入门类和接口
- npm的常用操作---npm工作笔记003
- 忽略git项目上的任何#39;bin#39;目录
- 【深度优先搜索笔记】抽象DFS
- C#实现Base64编码与解码及编码名称和代码页(Encoding.GetEncoding)
- win10计算机管理看不见蓝牙,解决win10蓝牙开关不见了的方法
- 网络安全应急响应-常用工具
- CMOS集成电路设计基础(孙肖子版)第二章课后答案
- 快捷键: Windows下利用微信快速截图
- 【细胞分割】基于形态学算法实现红细胞计数matlab源码含 GUI
- python-从视频中提取音频+将音频和视频合并
- 小可乐手机救砖+恢复通信录
- 高质量的博客评论外链有用么?
- 表单中多个文本框实时计算金钱总和值
- 求整型和浮点型绝对值的方法
- Classification 分类学习
- 蓝桥杯练习系统答案-数的读法-Python
热门文章
- Facebook应用Moments使用C++实现跨平台代码共享
- XCode5 真机调试及发布应用
- Linux重定向详解
- 借用虚拟机在真机安装 ubuntu, 亦可安装至移动硬盘
- 《The C++ Standard Library》第50页 关于传递auto_ptr的问题
- AspNetCoreRateLimit - ASP.NET Core 速率限制中间件。
- 如何对一组 IP 地址 进行排序?
- 新功能抢先看!Windows 11 2022 版全新 ISO 镜像来了+下载
- 如何把 .NET 进程中的所有托管异常找出来?
- Dapr + .NET 实战(十-终篇)K8S运行Dapr