专栏首页编程坑太多『中级篇』Docker 水平扩展和负载均衡(40)

『中级篇』Docker 水平扩展和负载均衡(40)

Docker Compose 里面的scale 设置服务运行的容器数量。源码地址:https://github.com/limingios/docker中的No.4

服务先创建起来
  • 项目路径
ls
cd flask-redis/
pwd

`

  • 项目安装
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo service docker restart
sudo docker-compose up
cd labs/flask-redis/
sudo docker-compose ps
  • scale 命令的使用

设置为一个服务启动的容器数量,数量是以这样的参数形式指定的:service=num

docker-compose up --scale web=3 -d

直接报错了。看下源码为什么报错。

  • 修改docker-compose.yml文件

ports 去掉。 在试试

version: "3"
services:
  redis:
    image: redis
  web:
    build:
      context: .
      dockerfile: Dockerfile
    environment:
      REDIS_HOST: redis
  • 执行命令

一个--scale 容器名=数字,就可以随时让web进行扩展。感觉很方便把!

#-d后台运行
sudo docker-compose up -d
#启动了2个容器,1个web,1个resdis
sudo docker-compose ps
#水平扩展给web的容器增加到3个
sudo docker-compose up --scale web=3 -d
#启动了4个容器,3个web,1个resdis
sudo docker-compose ps

但是问题来了没有暴露到外边的端口都是5000内部端口,所以出来了一个命令负载均衡工具:haproxy

  • haproxy

HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上,完全可以支持数以万计的 并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。 其实跟上边的例子很相似,只是把python应用的端口改成了80,使用了一个新的image把80映射到本地的8080。

cd lb-scale/
ls
pwd
more app.py
more Dockerfile
more docker-compose.yml
  • docker-compose 安装lb
sudo docker-compose up -d
#访问下看可以不
curl http://127.0.0.1:8080
sudo docker-compose up --scale web=10 -d
curl http://127.0.0.1:8080

https://hub.docker.com/r/dockercloud/haproxy/ dockercloud / haproxy 这个是测试学习用的,老铁们只要知道这个东西就可以了,实际项目中,主要用的nginx,到时候我会演示。

个人技术主页:idig8.com

PS:Docker的scale 可以扩展,也可以所有,他们自动来控制的。web=10 可以改成5 其中的6,7,8,9,10就被删除了。


本文分享自微信公众号 - 编程坑太多(idig88)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-07-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 『中级篇』Docker Compose的安装和基本使用(39)

    PS: docker-compose的概念有直观的理解,包括compose的命令行和使用。 建议使用docker-compose up -d 后台来运行,如果不...

    IT故事会
  • 「走进k8s」Docker三剑客之Docker Swarm(九)

    PS:这就是我们的服务编排,都是在三个节点,所谓的编排就是将多个节点变成一个节点来使用,接下来讲的k8s要把docker swarm功能要强大很多,当然也要复杂...

    IT故事会
  • 『中级篇』Docker Compose的安装和基本使用(39)

    PS: docker-compose的概念有直观的理解,包括compose的命令行和使用。

    IT故事会
  • Docker入门笔记总结

    Docker 是一个容器化平台,允许您快速构建,测试和部署应用程序,作为便携式,自给自足的容器,几乎可以在任何地方运行。Docker 是容器技术的事实上的标准,...

    轩辕小子
  • Kali 2020 安装Docker

    如果你对docker官方英文理解比较好或者习惯看英文文档可以到官方进行查阅https://docs.docker.com/engine/installation...

    刘銮奕
  • 『中级篇』Docker Compose的安装和基本使用(39)

    PS: docker-compose的概念有直观的理解,包括compose的命令行和使用。 建议使用docker-compose up -d 后台来运行,如果不...

    IT故事会
  • Docker基本命令加RabbitMq安装

    完成后访问:http://ip:15672 用户名admin 密码 admin 也可以自己设置密码

    崔笑颜
  • docker离线安装

    参考:https://www.cnblogs.com/atuotuo/p/9272368.html

    用户7625592
  • 业余草教你 10 分钟学会 Docker

    Docker 使用起来非常的简单,我这里写一个10分钟的简单教程。平时使用起来基本上能解决掉90%的问题。

    业余草
  • 超详细记录公司多用户Docker仓库创建安全认证和应用

    概述:超详细记录建立公司内部多用户Docker仓库,自定义CA证书,https安全认证。服务器作为远程Docker仓库,其他开发端(如server2,serve...

    王小雷

扫码关注云+社区

领取腾讯云代金券