当前位置: 首页 > article >正文

【Docker】Python Flask + Redis 练习

一、构建flask镜像

1.准备文件

创建app.py,内容如下

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 f"Hello Container World! I have been seen {redis.get('hits').decode('utf-8')} times and my hostname is {socket.gethostname()}.\n";

2.创建Dockerfile

内容如下

#拉取镜像
FROM python:3.9.5-slim
#执行命令 安装python脚本需要的包,并创建用户及用户组等 这里采用清华源下载
RUN pip3 install flask redis -i https://pypi.tuna.tsinghua.edu.cn/simple && \
        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"]

3.打包镜像

docker build -t="flask-demo" .

清华源,就是快

image-20231013140427791

二、拉取redis镜像

1.拉取redis镜像

docker image pull redis

image-20231013141450452

三、自建网络

1.创建一个docker bridge

docker network create -d bridge swback-demo

image-20231013140030182

四、启动容器

1.启动redis容器

将redis连接到swback-demo自建网络上

docker container run -d --name redis-server --network swback-demo redis

image-20231013140559705

2.启动flask容器

将其也接入自建网络上

docker container run -d --network swback-demo --name flask-demo --env REDIS_HOST=redis-server -p5000:5000 flask-demo

image-20231013140853627

五、测试

页面每次请求,都会**+1**

image-20231013140958996


http://www.kler.cn/a/104913.html

相关文章:

  • 【Android Studio】工程中文件Annotate with Git Blame 不能点击
  • Golang链路追踪:实现高效可靠的分布式系统监控
  • KVM实验之动态迁移
  • 机器学习-学习率:从理论到实战,探索学习率的调整策略
  • 在Ubuntu上通过Docker部署OpenVPN服务器
  • Docker 深度清除镜像缓存 (overlay2)
  • Redis 持久化配置,RDB和AOF方式配置说明
  • IDEA 构建web项目-详细教程
  • 局域网下多台windows电脑时间同步
  • 快速入门Elasticsearch:安装、基本概念、分词器和文档基本操作详解
  • vscode json文件添加注释报错
  • 大语言模型系列
  • 【tio-websocket】10、单条TCP连接上下文—ChannelContext
  • C++ 多态
  • echarts 按需加载处理
  • arch linux 安装 vsftpd 配置虚拟用户
  • 2023-python pdf转换为PPT代码
  • 贝锐花生壳内网穿透推出全新功能,远程业务连接更安全
  • css 三栏布局的实现?
  • idea 插件 checkstyle 规则示例和说明