安装所需软件

Docker

Docker-compose

配置docker-compose.yml文件内容如下:

#load balancer will automatically update the config using consul-template

lb:

image: yeasy/nginx-consul-template:latest

hostname: lb

volumes:

- /usr/soft/consul/logapi.conf:/etc/consul-templates/nginx.conf

links:

- consulserver:consul

ports:

- "80:80"

consulserver:

image: gliderlabs/consul-server:latest

hostname: consulserver

ports:

- "8300:8300"

- "8301:8301"

- "8301:8301/udp"

- "192.168.190.131:8302:8302"

- "192.168.190.131:8302:8302/udp"

- "192.168.190.131:8400:8400"

- "192.168.190.131:8500:8500"

- "53:53/udp"

- "53:53"

command: -data-dir /tmp/consul -bootstrap -advertise 192.168.190.131

registrator:

image: gliderlabs/registrator:latest

hostname: registrator

links:

- consulserver:consul

volumes:

- "/var/run/docker.sock:/tmp/docker.sock"

command: consul://consul:8500

logapi:

image: logapi-1-0-app

environment:

SERVICE_80_NAME: http

SERVICE_NAME: logapi

SERVICE_TAGS: backend

ports:

- "60000"

Nginx模板文件 /usr/soft/consul/logapi.conf内容如下:logapi名称与docker-compose.yml文件中logapi节点下的SERVICE_NAME名称相同

upstream app {

{{range service "logapi"}}server {{.Address}}:{{.Port}} max_fails=3 fail_timeout=60 weight=1;

{{else}}server 127.0.0.1:65535; # force a 502{{end}}

}

server {

listen 80 default_server;

location / {

proxy_pass http://app;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

}

}

转到docker-compose.yml文件所在目录

运行sudo docker-compose up

查看运行状态

防火墙开启相应端口

32860端口为logapi-1-0-app容器对应的端口号

sudo firewall-cmd --zone=public --add-port=8500/tcp --permanent

sudo firewall-cmd --zone=public --add-port=32861-33000/tcp --permanent

sudo firewall-cmd --reload

查看网站内容返回如下:

curl http://192.168.190.131

{"status":1,"message":"","data":{"hostName":"fdbd2c30b6c4","ip":["172.17.0.2","172.17.0.2","172.17.0.2"]}}

开启2个站点

sudo docker-compose scale logapi=2

再次访问站点内容

Centos 7 Docker、docker-compose、Registrator、Consul、Consul Template和Nginx实现高可扩展的Web框架的更多相关文章

  1. [原创]Docker学习记录: Shipyard+Swarm+Consul+Service Discover 搭建教程

    网上乱七八糟的资料实在是太多了, 乱, 特别乱, 而看书呢, 我读了2本书, 一本叫做<>, 另一本叫做<< Docker进阶与实战>> 在 服务发现这块讲的又不清 ...

  2. 【Linux】【Services】【SaaS】Docker+kubernetes(9. 安装consul实现服务注册发现)

    1. 简介 1.1. 官方网站: https://www.consul.io 1.2. Consul的功能: 服务发现:通过DNS或HTTP接口使得消费者发现服务,应用程序可以轻松找到所依赖的服务. ...

  3. CentOS下利用Docker部署Surging

    原文:CentOS下利用Docker部署Surging 1. 安装Centos, 配置固定ip配置文件地址vi /etc/sysconfig/network-scripts/ifcfg-ens33`` ...

  4. centos 7 安装 Docker Engine-CentOS 社区版

    获取Docker Engine-CentOS社区: https://docs.docker.com/install/linux/docker-ce/centos/ 1.操作系统要求 1.1 要安装 D ...

  5. Docker学习—Compose

    前言 前面<Docker学习-DockerFile>文中介绍了dockerfile相关的语法,及使用方式:接下来了解docker三剑客之一的 Compose:接下来详细学习. 一.dock ...

  6. Docker之Compose服务编排

    Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景. 说明:Comp ...

  7. CentOS 7 安装 Docker

    CentOS 7 安装 Docker 这里介绍 ContOS 7 的安装 docker V1.2+,包括阿里云加速 docker 镜像下载的设置,这对提升使用 docker 体验至关重要.其他系统安装 ...

  8. 在RedHat/CentOS下安装Docker(不升级内核)

    由于内核版本问题,最初仅Ubuntu可以较好的支持Docker.不过,由于RedHat系列OS(REHL.CentOS)是目前主流的Linux服务器操作系统,所以令RedHat系列OS支持Docker ...

  9. docker入门(1) Centos 7 下docker的安装

    centos 7安装docker 什么是 Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go ...

随机推荐

  1. 在IHttpHandler中获取session

    因为业务要异步通过IHttpHandler获得数据,但还要根据当前登录人员的session过滤,因此要在在IHttpHandler中获取session 方法是HttpHandler容器中如果需要访问S ...

  2. Moon.Orm常见问题问答FAQ

    有问题在评论,我看到邮件会尽快回复 1.重点了解Db里面的方法.这是核心. 2.关于查询语句MQL:http://www.cnblogs.com/humble/p/3380065.html 3.关于如 ...

  3. Elasticsearch 教程--分布式集群

    集群 补充章节 正如前文提到的,这就是第个补充的章节,这里会介绍 Elasticsearch 如何在分布式环境中运行. 本章解释了常用术语,比如 集群 (cluster), 节点 (node) 以及  ...

  4. ASP.NET MVC中获取URL地址参数的两种写法

    一.url地址传参的第一种写法 1.通过mvc中默认的url地址书写格式:控制器/方法名/参数 2.实例:http://localhost:39270/RequestDemo/Index/88,默认参 ...

  5. C++ this指针的用法

    this指针的含义及其用法: 1. this指针是一个隐含于每一个成员函数中的特殊指针.它指向正在被该成员函数操作的那个对象.2. 当对一个对象调用成员函数时,编译程序先将对象的地址赋给this指针, ...

  6. iOS阶段学习第34天笔记(UI小组件 UISegment-UISlider-UIStepper-UIProgressView-UITextView介绍)

    iOS学习(UI)知识点整理 一.UI小组件 1.UISegmentedControl 分段选择器  实例代码 - (void)viewDidLoad { [super viewDidLoad]; / ...

  7. (1-2)配置的升级 - ASP.NET从MVC5升级到MVC6

    ASP.NET从MVC5升级到MVC6 总目录 MVC5和MVC6的区别 在MVC5的时候,web.config文件无疑是整个配置的核心,从web配置,到应用程序的参数,都可以写在web.config ...

  8. 三分钟集成elmah xml 格式日志到mvc站点

    1.通过nuget安装Elmah ELMAH on XML Log 会自动在web.config 文件中添加配置内容,默认不允许远程访问,日志访问路径是 Elmah.axd,不记录500错误 2.修改 ...

  9. sqlserver附加 mdf、ldf的方法(手记)

    exec sp_attach_db 'bookstore','E:\homework\bookstore_Data.MDF','E:\homework\bookstore_Log.LDF' EXEC ...

  10. nyoj-一笔画问题-欧拉图+联通判定

    一笔画问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...