共计 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
正文完