一、构建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" .
清华源,就是快
二、拉取redis镜像
1.拉取redis镜像
docker image pull redis
三、自建网络
1.创建一个docker bridge
docker network create -d bridge swback-demo
四、启动容器
1.启动redis容器
将redis连接到swback-demo自建网络上
docker container run -d --name redis-server --network swback-demo redis
2.启动flask容器
将其也接入自建网络上
docker container run -d --network swback-demo --name flask-demo --env REDIS_HOST=redis-server -p5000:5000 flask-demo
五、测试
页面每次请求,都会**+1**