Docker-Compose一键部署Ningx+Asp.net core站点+Redis
生产环境更新追求快速平稳,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就可以看到站点页面了。
祝好运:)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
K8S集群中修改在线应用的存储卷信息
修改应用NAS版本:从v4到v3 1. 修改nfs版本,需要重挂载nas卷,则pod需要重启; 2. 如果使用deploy部署应用,参考下面示例,如果使用pod部署应用,下面示例中改为pod的部署模板; 修改前应用: pv.yaml apiVersion: v1 kind: PersistentVolume metadata: name: pv-nas labels: alicloud-pvname: pv-nas spec: capacity: storage: 5Gi accessModes: - ReadWriteMany flexVolume: driver: "alicloud/nas" options: server: "2564f49129-ggu23.
- 下一篇
物联网发展的三大编程语言
虽然Java是物联网开发中使用最多的语言,但是Java和Python在物联网开发的不同子域中紧随其后。物联网发展的未来可能仍然是多语言的。十年前,可能没有人想象未来有一天我们使用的空调、冰箱可以智能可控,路上行驶的汽车可以自动驾驶,现在,这些都将变得现实,而让这些变得现实的就是物联网。众所周知,物联网技术的目的是测量,收集和分析数据,以提供更好的用户体验并提高产品质量。简单的来说就是让我们的生活更好的运作。不同约束条件下的发展测量,收集和分析三个阶段中的每一个阶段都需要有不同的工作环境和不同的约束集。例如,通过设备上具有有限能力的传感器测量数据。然后使用诸如智能手机或小型控制台上的app之类的网关来聚合和传输该数据,该控制台具有与设备完全不同的计算能力。使用云存储和分析该数据。因此,软件开发领域的每个阶段都可以为物联网提供不同的编程语言。开发人员使用几种不同的物联网编程语言,如C,C ++,Java,JavaScript,Python和PHP等等。 对于具有低计算能力和受限RAM的物联网硬件,C是 首选的编程语言,但对于网关和云平台,Java是首选。那么我们来分析下最受欢迎的物联网开发...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果