使用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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。