Python|Python Flask + Redis 程序练习
目录
- 1.程序准备
- 2.镜像准备
- 3.创建一个docker bridge
- 4.创建redis container
- 5.创建flask container
- 6.查看页面
- 7.总结
在一个自定义网络bridge,相互ping,不需要知道ip,只用名字就能ping通
文章图片
1.程序准备 准备一个Python文件,名字为 app.py 内容如下:
提供一个web服务,可以访问地址,返回一个Hello Container World!..并且记录访问的次数。
from flask import Flaskfrom redis import Redisimport osimport socketapp = Flask(__name__)redis = Redis(host=os.environ.get('REDIS_HOST', '127.0.0.1'), port=6379)@app.route('/')def hello():redis.incr('hits')return f"Hello Container World! I have been seen {redis.get('hits').decode('utf-8')} times and my hostname is {socket.gethostname()}.\n"
准备一个Dockerfile
FROM python:3.9.5-slimRUN pip install flask redis && \groupadd -r flask && useradd -r -g flask flask && \mkdir /src && \chown -R flask:flask /srcUSER flaskCOPY app.py /src/app.pyWORKDIR /srcENV FLASK_APP=app.py REDIS_HOST=redisEXPOSE 5000CMD ["flask", "run", "-h", "0.0.0.0"]
2.镜像准备 构建
flask
镜像,准备一个redis
镜像。$ docker image pull redis$ docker image build -t flask-demo .$ docker image lsREPOSITORYTAGIMAGE IDCREATEDSIZEflask-demolatest4778411a24c5About a minute ago126MBpython3.9.5-slimc719550502768 days ago115MBredislatest08502081bff62 weeks ago105MB
3.创建一个docker bridge
$ docker network create -d bridge demo-network8005f4348c44ffe3cdcbbda165beea2b0cb520179d3745b24e8f9e05a3e6456d$ docker network lsNETWORK IDNAMEDRIVERSCOPE2a464c0b8ec7bridgebridgelocal8005f4348c44demo-networkbridgelocal80b63f711a37hosthostlocalfae746a75be1nonenulllocal$
4.创建redis container 【Python|Python Flask + Redis 程序练习】创建一个叫
redis-server
的container
,连到demo-network
上$ docker container run -d --name redis-server --network demo-network redis002800c265020310231d689e6fd35bc084a0fa015e8b0a3174aa2c5e29824c0e$ docker container lsCONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES002800c26502redis"docker-entrypoint.s…"4 seconds agoUp 3 seconds6379/tcpredis-server
5.创建flask container 注意:--env REDIS_HOST=redis-server 这样app.py中的REDIS_HOST就可以访问redis服务了!
$ docker container run -d --network demo-network --name flask-demo --env REDIS_HOST=redis-server -p 5000:5000 flask-demo
6.查看页面 打开浏览器访问
http://127.0.0.1:5000
应该能看到类似下面的内容,每次刷新页面,计数加1
Hello Container World! I have been seen 36 times and my hostname is 925ecb8d111a.
7.总结 如果把上面的步骤合并到一起,成为一个部署脚本:
# prepare imagedocker image pull redisdocker image build -t flask-demo .# create networkdocker network create -d bridge demo-network# create containerdocker container run -d --name redis-server --network demo-network redisdocker container run -d --network demo-network --name flask-demo --env REDIS_HOST=redis-server -p 5000:5000 flask-demo
到此这篇关于Python Flask + Redis 程序练习的文章就介绍到这了,更多相关Python Flask + Redis 练习内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- hello|hello python interpreter什么意思_Python 基本功: 1. Hello world
- python|python hello worlde_python教程 - 改变世界,从hello world开始 | 猿说编程
- hello程序代码python_翻译(《实用的Python编程》01_02_Hello_world)
- python|python hello world程序代码_第一个python程序 helloworld
- java语言的编译器可以用python_到底学Python还是Java()
- 《微服务项目相关》|使用canal解决Mysql和Redis数据同步问题
- 面试官(Redis中哈希数据类型的内部实现方式是什么())
- 详解在Python中创建条形图追赶动画
- Python+OpenCV自制AI视觉版贪吃蛇游戏
- 面试官(Redis中列表的内部实现方式是什么())