构建镜像的目录结构:
Dockerfile是docker构建文件
requirements.txt 是 src 文件夹里各个文件所需的相关模块。
src的目录结构:
主要是 app.py 文件:下面是一个简单的demo
1 from flask import Flask 2 3 app = Flask(__name__) 4 5 @app.route('/') 6 def hello(): 7 return 'hello docker部署Flask' 8 9 if __name__ == '__main__': 10 app.run(host="0.0.0.0")
Dockerfile:
docker对应的 Dockerfile 文件,注意这是一个文件,没有后缀,内容如下:
1 FROM python:3.7.5 2 3 WORKDIR /app/src 4 COPY . /app 5 6 RUN pip install -r /app/requirements.txt -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com 7 8 CMD python app.py
FROM python:3.7.5 是基于哪个镜像源。
建议使用你本地用的python哪个版本就基于那个源。比如:我本地使用python3.6.8来开发项目,那这里就修改成 FROM python:3.6.8
将文件上传至服务器:
构建镜像:
在安装好docker环境下使用如下命令,记得要在有 Dockerfile 文件下 执行如下命令
docker build -t test:v1.0 .
test 是构建镜像的名称。
v1.0 是对应镜像的版本号。版本号可以自己随便定义。比如:1.1.0
要注意后面是有一个点的,然后就是等待构建完成了。
可能等待的时间会有点慢,最后可以使用命令 docker images 检查是否已经构建完成。
镜像构建完成后,就可以测试下构建的镜像是否成功。
运行镜像:
语法:docker run -itd -p 物理机端口:容器端口 镜像ID或镜像名称:tag
docker run -itd -p 2000:5000 test:v1.0
物理机端口:之后访问时所需要加上的端口
容器端口:原app.py中所定义的端口,默认是 5000
tag:构建镜像的版本号
docker ps 可查看当前正在运行的容器。
如果有上面的test:v1.0容器,说明已经运行成功。再然后浏览器访问:http://IP:2000/ 即可查看到 hello docker部署Flask
此笔记参考自xiaolong