共计 1010 个字符,预计需要花费 3 分钟才能阅读完成。
应用 Flask+Redis 构建一个实现计数器性能的 web 我的项目
创立一个 redis 容器
docker run -d --name redis redis
创立一个 Flask 容器
Dockerfile 文件内容如下
FROM hub.c.163.com/library/python | |
LABEL maintainer="924714558@qq.com" | |
COPY . /app | |
WORKDIR /app | |
RUN pip install flask redis | |
EXPOSE 5000 | |
CMD ["python","app.py"] |
Dockerfile 所在的当前目录下的 app.py 文件内容如下
import os | |
import socket | |
from flask import Flask | |
from redis import Redis | |
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 'hostname is %s and hits %s times' % (socket.gethostname(),redis.get('hits')) | |
if __name__ == '__main__': | |
app.run(host='0.0.0.0', port=5000, debug=True) |
而后对 Dockerfile 文件进行 build 并实例化一个容器
docker build -t siguoya/flask-redis . | |
# --link 用于 flask app 连贯 redis 数据库 | |
# - e 选项用于设置容器的环境变量,在容器外部能够应用 env 命令来获取 | |
# REDIS_HOST 的值是先前创立的 redis 容器的 name | |
# 5000:5000 是指虚拟主机的 5000 端口映射 flask app 我的项目启动的 5000 端口 | |
docker run -d --name flask-redis --link redis -e REDIS_HOST=redis -p 5000:5000 siguoya/flask-redis |
此时在虚拟机上执行
curl http://127.0.0.1:5000
在宿主机上执行
curl http://192.168.205.10:5000/
都可看到如下成果了
hostname is 066ed3b5ae8e and hits b'32' times
正文完