一、简单架构图
二、实验概述
实现容器web的在线动态扩展
三、实验步骤
1、docker-compose的yml文件,
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
2、查看web的Dockerfile文件的内容
FROM python:2.7
LABEL maintaner="zheng@gmail.com"
COPY . /app
WORKDIR /app
RUN pip install flask redis
EXPOSE 80
CMD [ "python", "app.py" ]
3、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.\n' % (redis.get('hits'),socket.gethostname())
if __name__ == "__main__":
app.run(host="0.0.0.0", port=80, debug=True)
4、build镜像
[root@docker1 lb-scale]# docker-compose build
5、启动容器
docker-compose up -d
6、在线动态扩展容器web的数据量
docker-compose up --scale web=5 -d
至此,容器web的数量增加到了5台。