当前位置: 首页 > 后端技术 > Python

5分钟,教你用Docker部署一个Python应用!

时间:2023-03-26 00:57:17 Python

在传统物理机或云服务器上部署项目会存在一些痛点,例如:项目部署慢、资源浪费、迁移困难、扩展性低等。使用Docker部署项目的优势包括:高效利用系统资源、服务启动更快、环境一致、迁移更方便本文将介绍Docker部署Python项目的一般流程1.Dockerfile描述文件Dockerfile是一个描述文件文件放在项目的根目录下。您可以使用Docker命令基于此文件构建镜像。常用的指令有:FROM用于定义基础镜像MAINTAINER指定维护者信息。可以省略。RUN和“安装命令”连在一起。可用于安装工具依赖包ADD解压宿主机文件并解压。将执行解压操作WORKDIR用于切换工作目录VOLUME配置宿主机与容器的目录映射EXPOSE配置项目在容器中暴露的端口号CMD指定容器启动后运行的命令例如,可以运行一条命令来启动项目2.实战使用Docker部署应用的大致流程是:开发一个项目,在本地进行测试。写一个Dockerfile放在项目的根目录下,打包镜像文件,运行镜像容器测试。为了演示方便,这里以一个简单的Flask工程为例进行说明2-1项目开发fromflaskimportFlask#安装依赖#pip3install-Uflaskapp=Flask(__name__)@app.route('/')defindex():返回“测试容器部署!”if__name__=='__main__':app.run(host='0.0.0.0',port=8888)#浏览器访问测试#http://127.0.0.1:8888/项目开发完成,Dockerfile即可本地测试通过后写的。2-2编写Dockerfile在项目的根目录下,创建一个Dockerfile文件,使用上面的指令编写描述脚本。需要注意的是这里“EXPOSE”指令暴露的端口号与入口文件中定义的端口号一致#DockerfileFROMcentos:7.9.2009RUNyummakecachefast;RUNyuminstallpython3-develpython3-pip-yRUNpip3install-ihttps://pypi.douban.com/simpleflaskCOPYmain.py/optWORKDIR/optEXPOSE8888CMD["python3","main.py"]2-3构建镜像#在当前file文件夹下,根据Dockerfile构建镜像#Mirrorname:xag/my_flask_web#--no-cache:镜像构建不使用旧缓存dockerbuild--no-cache-t"xag/my_flask_web"。2-4run镜像容器使用dockerrun命令根据镜像运行一个容器其中*-d:代表容器在后台运行,不基于前台*--name:用来执行容器的别名*-p:用于配置宿主机和容器映射的端口#-d:后台运行#宿主机(9999)在容器中映射8888(上面的Dockerfile已经暴露了8888端口)dockerrun-d--nameflask_web-p9999:8888xag/my_flask_web2-5最后测试在浏览器中,通过host暴露的端口号9999访问项目。访问地址:http://127.0.0.1:9999/3。在总结文章中,通过一个简单的Web项目来说明使用Docker部署项目的大致流程。,Dockerfile非常灵活。还支持ARG/ENV设置环境变量,VOLUME命令挂载目录,ENTRYPOINT配置启动程序和参数等,这部分大家可以根据官网的介绍自行扩展。资料,包括新手电子书、教程、源码等,免费分享给大家!想上“Python编程学习圈”,发“J”免费领取