Python Flask + Redis 程序练习

Bena ·
更新时间:2024-11-10
· 1858 次阅读

目录

1.程序准备

2.镜像准备

3.创建一个docker bridge

4.创建redis container

5.创建flask container

6.查看页面

7.总结

两个容器,一个flask-demo,一个是redis-server
在一个自定义网络bridge,相互ping,不需要知道ip,只用名字就能ping通

1.程序准备

准备一个Python文件,名字为 app.py 内容如下:

提供一个web服务,可以访问地址,返回一个Hello Container World!..并且记录访问的次数。

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 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-slim RUN pip install flask redis && \     groupadd -r flask && useradd -r -g flask flask && \     mkdir /src && \     chown -R flask:flask /src USER flask COPY app.py /src/app.py WORKDIR /src ENV FLASK_APP=app.py REDIS_HOST=redis EXPOSE 5000 CMD ["flask", "run", "-h", "0.0.0.0"] 2.镜像准备

构建flask镜像,准备一个redis镜像。

$ docker image pull redis $ docker image build -t flask-demo . $ docker image ls REPOSITORY   TAG          IMAGE ID       CREATED              SIZE flask-demo   latest       4778411a24c5   About a minute ago   126MB python       3.9.5-slim   c71955050276   8 days ago           115MB redis        latest       08502081bff6   2 weeks ago          105MB 3.创建一个docker bridge $ docker network create -d bridge demo-network 8005f4348c44ffe3cdcbbda165beea2b0cb520179d3745b24e8f9e05a3e6456d $ docker network ls NETWORK ID     NAME           DRIVER    SCOPE 2a464c0b8ec7   bridge         bridge    local 8005f4348c44   demo-network   bridge    local 80b63f711a37   host           host      local fae746a75be1   none           null      local $ 4.创建redis container

创建一个叫 redis-server container,连到demo-network

$ docker container run -d --name redis-server --network demo-network redis 002800c265020310231d689e6fd35bc084a0fa015e8b0a3174aa2c5e29824c0e $ docker container ls CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS      NAMES 002800c26502   redis     "docker-entrypoint.s…"   4 seconds ago   Up 3 seconds   6379/tcp   redis-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 image docker image pull redis docker image build -t flask-demo . # create network docker network create -d bridge demo-network # create container docker container run -d --name redis-server --network demo-network redis docker 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 练习内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!



程序 flask Redis Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号