zoukankan      html  css  js  c++  java
  • docker-compose的scale的用法

    用到的三个文件

    docker-compose

    version: "3"
    
    services:
    
      redis:
        image: redis
    
      web:
        build:
          context: .
          dockerfile: Dockerfile
        environment:
          REDIS_HOST: redis
    
      lb:
        image: dockercloud/haproxy
        links:
          - web
        ports:
          - 8080:80
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock 

    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" ]

    app.py

    from flask import Flask
    from redis import Redis
    import os
    import socket
    
    app = 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.
    ' % (redis.get('hits'),socket.gethostname())
    
    
    if __name__ == "__main__":
        app.run(host="0.0.0.0", port=80, debug=True)

    创建docker-compose的文件夹

    mkdir scale

    将三个文件上传进来

    rz

    执行docker-compose

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

    浏览器输入宿主ip:8080,报错如下:Could not find a version that satisfies the requirement Werkzeug>=0.15

    显然pip没有找到依赖库的合适版本,升级一下pip,在Dockerfile中修改

    RUN pip install flask redis
    
    修改为 RUN python
    -m pip install --upgrade pip && pip install flask redis
    再次执行执行docker-compose
    docker-compose up --scale web=3 -d
    浏览器输入宿主ip:8080
     
    Hello Container World! I have been seen 5 times and my hostname is 8e5e7d7e796f.
    Hello Container World! I have been seen 6 times and my hostname is 5b521b5758a0.
    Hello Container World! I have been seen 8 times and my hostname is 03b02d13f35d.
     
    刷新三次,每次的web都不一样,很方便实现负载均衡
     
    (只是单机实验,生产环境中肯定不是在单机上做负载均衡)
  • 相关阅读:
    算法作业10——0-1装载问题(背包问题)
    算法作业9-1——最长公共子序列问题
    算法作业9-2——背包问题
    算法作业7——投资问题
    算法作业6——选第k小的元素:特定分治策略
    【Java并发编程】并发编程大合集
    Redis学习笔记-Redis内部数据结构
    近期的随笔
    2013年的总结,比以往时候来得晚了一些
    探索推荐引擎内部的秘密,第 3 部分: 深入推荐引擎相关算法
  • 原文地址:https://www.cnblogs.com/soymilk2019/p/11590117.html
Copyright © 2011-2022 走看看