Docker系列器十:docker-compose和网站的负载均衡

news/2024/5/9 12:42:10/文章来源:https://blog.csdn.net/weixin_36171533/article/details/81814632

Docker应用中,为了达到高可用,可以做很多的web服务,保持服务的稳定性,在web的出口处是haproxy等负载应用。

命令:

在和yml文件的同文件下,执行任何的docker-pose的命令,否则是提示找不到文件的。

docker up -d 后台启动某个程序

他会根据.yml文件中的yml自动下载和构建,文中的dicker images是获取的dockerhub上线的资源,尝试过阿里云和dockercn,可能和环境问题,python2.7运行pip安装时报错。

docker-compose up --scale wordpress=20 -d

wordpress是你在yml中写的web程序,上面的含义是:

通过scale的方式创建wordpress 20台机器

docker-compose ps 查看是否创建成功

docker-compose stop 通知容器,但是保留数据

docker-compose start 启动容器

下面是示例:

示例一:

docker-compose+mysql+wordpress+dockercloud/haproxy

version: '3'services:wordpress:image: wordpressenvironment:WORDPRESS_DB_HOST: mysqlWORDPRESS_DB_PASSWORD: rootnetworks:- my-bridgemysql:image: mysqlenvironment:MYSQL_ROOT_PASSWORD: rootMYSQL_DATABASE: wordpressvolumes:- /home/mysql-data:/var/lib/mysqlnetworks:- my-bridgelb:image: dockercloud/haproxylinks:- wordpressports:- 8080:80volumes:- /var/run/docker.sock:/var/run/docker.sock networks:- my-bridge
volumes:mysql-data:networks:my-bridge:driver: bridge

实例二:

flask-redis

app.py

from flask import Flask
from redis import Redis
import os
import socketapp = Flask(__name__)
redis = Redis(host=os.environ.get('REDIS_HOST', '127.0.0.1'), port=6379)@app.route('/')
def hello():redis.incr('hits')return 'Hello Container World! I have been seen %s times and my hostname is %s.\n' % (redis.get('hits'),socket.gethostname())if __name__ == "__main__":app.run(host="0.0.0.0", port=5000, debug=True)

yml文件

version: "3"services:redis:image: redisweb:build:context: .dockerfile: Dockerfileports:- 8080:5000environment:REDIS_HOST: redis

Dockerfile

FROM python:2.7
LABEL maintaner="Peng Xiao xiaoquwl@gmail.com"
COPY . /app
WORKDIR /app
RUN pip install flask redis
EXPOSE 5000
CMD [ "python", "app.py" ]

示例三:

app.py

from flask import Flask
from redis import Redis
import os
import socketapp = Flask(__name__)
redis = Redis(host=os.environ.get('REDIS_HOST', '127.0.0.1'), port=6379)@app.route('/')
def hello():redis.incr('hits')return 'Hello Container World! I have been seen %s times and my hostname is %s.\n' % (redis.get('hits'),socket.gethostname())if __name__ == "__main__":app.run(host="0.0.0.0", port=80, debug=True)

Dockerfile

[root@docker-host lb-scale]# cat Dockerfile 
FROM python:2.7
LABEL maintaner="Peng Xiao xiaoquwl@gmail.com"
COPY . /app
WORKDIR /app
RUN pip install flask redis
EXPOSE 80
CMD [ "python", "app.py" ]

Dockerfile

version: "3"services:redis:image: redisweb:build:context: .dockerfile: Dockerfileenvironment:REDIS_HOST: redislb:image: dockercloud/haproxylinks:- webports:- 8080:80volumes:- /var/run/docker.sock:/var/run/docker.sock

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_846561.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型网站系统架构的演化

http://www.cnblogs.com/leefreeman/p/3993449.html 前言 一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的&#xff0…

软件体系结构---优酷网站架构分析

1.web环境下架构特性 可扩展、可靠、简单核心、模块化 2.优酷网站分析 1)前端框架 模块分离、前端可扩展、分层UI分离 2)存储结构 在体系结构上,优酷网采用分布式的结构,服务器和存储设备分布在全国各地,用户就近访问,…

大型网站架构系列:分布式消息队列(一)

以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。本次分享大纲消息队列概述消息队列应用场景消息中间件示例JMS消息服务(见第二篇:大型网…

JS基础17-网站效果

一、鼠标移入触发显示框和更改属性 要实现的效果 window.οnlοadfunction(){ //获取到div框里的li数组var oToplistdocument.getElementById(top-list);var oToplistlioToplist.getElementsByTagName(li);var oPulldocument.getElementById(pull-down);//鼠标移入时&#xff0…

Python_记一次网站数据定向爬取实现

记一次网站数据定向爬取实现 by:授客 QQ:1033553122 测试环境: Python版本:Python 3.4 Win7 请勿用于商业及非法用途,仅供学习研究用,否则后果自负 数据爬取场景 如下,打开网站查询页面,输入关…

大型网站架构演变和知识体系

之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么…

v2013调试无法访问此网站 localhost 拒绝了我们的连接请求

问题描述: 别人给的服务器代码,在本地部署以后调试的,localhost:8080 可以访问,localhost:2524访问不了需要改什么配置吗 解决思路: 这种只能在服务器上访问,可能端口号2524…

如何优化您的网站以提高速度

大家好! 今天,我们有一个来宾帖子,介绍有关如何加快网站速度的一些提示! 他目前正在一家电子商务网站上工作,他的任务之一是使网站快速加载。 因此,请在下面阅读! 〜迈克 网站速度已成为诸如Go…

如何优化程序提高运行速度_如何优化您的网站以提高速度

如何优化程序提高运行速度大家好! 今天,我们有一个来宾帖子,介绍有关如何加快网站速度的一些提示! 他目前正在一家电子商务网站上工作,他的任务之一是使网站快速加载。 因此,喜欢在下面阅读! 〜…

网站托管平台_托管Kubernetes平台综述

网站托管平台在容器协调器的竞争中,Kubernetes不断前进。 但是,就像我在Docker主机上撰写我的文章时一样,人们经常被困在将基础架构投入生产的步骤上。 与我最初写这篇文章时不同,该行业取得了长足的发展,正如您将看到…

PHP的网站主要攻击方式有哪些?

1、命令注入(Command Injection) 2、eval注入(Eval Injection) 3、客户端脚本攻击(Script Insertion) 4、跨网站脚本攻击(Cross Site Scripting, XSS) 5、SQL注入攻击(SQL injection) 6、跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF) 7、Session 会话劫持(Session …

Xshell命令行学习,宝塔创建网站

参考链接 :https://blog.csdn.net/u014074697/article/details/86241642 宝塔创建面板-在安全组新添加一个端口 浏览器输入Bt-panel网址,登入用户名和密码即可进入

curl网站开发指南

整理curl命令: curl www.sina.com curl -o [文件名] www.sina.com curl -L www.sina.com curl -i www.sina.com curl -I www.sina.com curl -v www.sina.com curl --trace output.txt www.sina.com curl --trace-ascii output.txt www.sina.com php-curl这个库也不…

电商购物网站(登陆注册购物车详情页等)(仿jd)

电商购物网站(仿jd) 源码链接: https://gitee.com/ZRXXUAN/shopping https://github.com/ZRXXUAN/shopping 介绍 仿照jd写的电商购物网站 可以实现基本功能,登录、注册与数据库交互,购物车,详情页&…

BS4+Openpyxl循环爬取114网站黄页信息存入excel + tinker界面输入(开源代码)

使用beautifulSoup框架爬取114黄页数据。 代码开源在gitee地址: https://gitee.com/aismarter/ScrapySpider_bs4_openpyxl_tinker github地址: https://github.com/Aismarter/ScrapySpider_BS4_openpyxl_tinker 分析网站 首先打开网页,分析爬取网页的…

简易购物网站JSP

下载源码 开发工具: 1.myeclipse2014 2.SQLServer2012 开发思路: 开发思路及过程请详看附件内开发文档 项目构造: 数据库说明: 需创建一个数据库(shopDB),三个表(users、goods、shopCart),空表即可,后…

宝塔部署java项目建站最全爬坑博客-为啥叫最全,因为我爬的坑最多

1.首先你要有阿里云域名,然后在阿里云上解析A类你的域名,这就不多说了 2.进入宝塔面板后,你要先安装环境,最好是编译安装,因为求稳,急速安装不稳定,但是像tomcat这类app程序没有编译安装哦 环境如果都安装好了,那么我们就开始配置项目了 首先,要看我们需要运行的项目是什么,…

Java-POI大数据分析 -实体店选址POI数据分析-5天,多网站爬虫数据融合处理

实体店选址大数据分析-保定地区-POI数据-powermap-爬虫获取真实数据讲一下项目的思路 预期通过获得poi数据进行分析,以为实体店选址进行决策 数据源 58同城店铺转让数据 安居客小区详细信息数据 安居客小区平均房价数据 上爬虫代码 package wubaSpider;import java.io.FileO…

网站漏洞扫描工具AWVS相关问题——Access Denied for your user role. Contact your Administrator.

在AWVS登录用户后,在选择自己要使用的功能时会出现“Access Denied for your user role. Contact your Administrator.”问题,即“拒绝访问您的用户角色。请与管理员联系。” 此问题的出现是由于在软件处于未激活状态所致。 解决方案: 1、AW…

AWVS启动后显示“无法访问此网站”的解决方法

当双击桌面的“Acunetix图标”,自动打开浏览器跳转页面,结果页面显示“无法访问此网站” 按WindowsR键输入services.msc打开服务界面查看Acunetix服务是否开启,一般是两个服务 右键选择服务,选择启动,将两个服务全部启…