李明
|
源码分析
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=5000, debug=True)
FROM python:2.7 LABEL maintaner="¹«Öںţº±à³Ì¿ÓÌ«¶à 394498036@qq.com"COPY . /app WORKDIR /app RUN pip install flask redis EXPOSE 5000 CMD [ "python", "app.py" ]
ls cd labscd flask-redis ls
sudo service docker restart sudo docker run -d --name redis redis sudo docker ps
#怼上加速器curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://b81aace9.m.daocloud.io sudo service docker restart#创建对应的镜像imagesudo docker build -t liming/flask-redis .
sudo docker container start redis#通过-e 命令,把环境变量REDIS_HOST=redis 放入容器的环境变量中sudo docker run -d --link redis --name flask-redis2 -e REDIS_HOST=redis liming/flask-redis sudo docker exec -it flask-redis2 /bin/sh env#效果就出来了curl 127.0.0.1:5000
image.png
sudo docker stop flask-redis2 sudo docker rm flask-redis2 sudo docker run -d -p 5000:5000 --link redis --name flask-redis2 -e REDIS_HOST=redis liming/flask-redis
图例解释今天的部署
PS:有2个容器,他们有访问的关系。通过这个例子大家可以想到现实的例子很多项目有前后台之分的,有数据库,有前端,有后端,对于分模块的项目中,我们推荐使用容器的方式,可以给每个模块放入不同的容器。还讲了-e的方式给容器内设置环境变量的方式,方便应用的访问。
|
2018-09-13 10:21:30
李明 最后编辑, 2018-09-13 10:23:05