1.app.py
from flask import Flask
from redis import Redis
import os
app = Flask(__name__)
redis = Redis(host='redis', port=6379)
@app.route('/')
def hello():
redis.incr('hits')
return 'Hello World! I have been seen %s times.' % redis.get('hits')
if __name__ == "__main__":
app.run(host="0.0.0.0",debug=True)
这是一个Flask应用,基于Python的轻Web应用;
@app.route('/')
访问根目录,然后返回一个从Redis里读取出来的值,该值通过自增来统计访问次数;
最后Web容器在0.0.0.0上监听默认端口5000并启动。
2.requirements.txt
flask
redis
指定了Pythone的依赖包:flask
和redis
3.Dockerfile
FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
基于python2.7,将当前目录的文件拷贝至容器的工作目录/code
。
3.docker-compose.yml
version: '2'
services:
web:
build: .
command: python app.py
ports:
- "5000:5000"
volumes:
- .:/code
links:
- redis
redis:
image: redis
定义了compose的版本和两个服务
其中,第一个服务web,它从当前目录的Dockerfile build
得到,在容器中运行“python app.py
”;把容器的5000端口映射到宿主机的5000端口;挂载执行这些操作所在的目录到容器中的/code目录下;
第二个服务redis直接使用已有redis镜像。
4.启动容器
docker-compose up
访问宿主机的5000端口,刷新两次查看自增。