前言
使用Docker容器的形式运行一个简单的Flask项目
步骤
一.编写py代码
1.用python编写一个简单的Flask项目,这里我使用的是PyChram进行项目的编写
创建一个名叫app.py的文件如下:(值得注意的是:Flask 需要一波倒包,鼠标移动到Flask 按 Alt + Enter 完成倒包)
#!/user/bin/env python3
# -*- coding: utf-8 -*-
# @Email : 3431463@qq.com
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '<h1>Hello World!</h1>'
@app.route('/user')
def getUserName():
return '<h1>Tommy </h1>'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=7777, debug=True)
2.代码编写完成,首先就是在PyCharm中先运行一波代码,测试下效果,空白处右键选择 Run ‘app’ 代码正常跑起来:
3.打开浏览器输入 http://localhost:7777 回车 出现 Hello World!说明你Flask没有问题阔以制作docker镜像了
二.把flask服务构建成一个docker镜像
1.创建两个文件 Dockerflie 跟 requirements.txt (注意:Dockerfile是没有拓展名的)
1.1)Dockerfile 是 docker 构建镜像文件的基础,docker会根据Dockerfile的命令构建镜像,Dockerfile代码如下:
FROM python:3.8
WORKDIR /app
ADD . /app
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
EXPOSE 7777
CMD ["python", "app.py"]
大致意思:
采用的是 python3.8 版本
设置docker容器的工作目录 /app
将当前目录下的所有内容拷贝到容器中的 /app 目录下(app.py Dockerfile requirements.txt)
倒入app.py所需要的包(这里就是Flask的包了)后面是镜像源,万一你要引入的包需要阔学上网那就不好办了,所以设置了一个国内的镜像源确保万无一失
容器对外暴露的端口号:7777
执行 python 代码 app.py
1.2)requirement.txt为python的依赖库
Flask==1.1.1
2021.4.15 补充说明。这里有个问题,1.1.1哪里来的?要是我有很多很多的包,我总不能一个一个找吧?
==============================================================================2021.4.15
没有错,肯定是不用一个一个找的,我打开pycharm下面的Terminal命令行,输入 pip freeze 回车就会有你这个项目所依赖滴东西加版本
当然了,pip指的是你基于python2,很多老铁电脑里面是python3那就用 pip3 freeze
因为是后面补充的知识点,所以我的图有很多包,这是另一个项目的,不要在意,看看思路就行。
这些就是你要填在requirement.txt中的依赖了。
==============================================================================2021.4.15
2.开始构建镜像
2.1)cd 目录到你的python目录下,即:Dockerfile文件目录下
补充说明一点哈,如果你在这个目录下打包镜像,那么是会把venv这个文件夹一起打包的,无端增加了一波大小,所以最好自己创建一个文件夹,把这三文件丢里面,然后再cdUsssp4b33CF3Cb33Cb33C |