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

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

时间:2023-03-25 23:40:34 Python

在传统物理机或云服务器上部署项目会存在项目部署速度慢、资源浪费、迁移困难、扩展性低等痛点。使用Docker部署项目的优势包括:系统资源的高效利用、服务启动更快、环境一致、迁移更方便。本文将介绍Docker部署Python项目的大致流程。1、Dockerfile描述文件Dockerfile是放在项目根目录下的描述文件。您可以使用Docker命令基于该文件构建镜像。常用指令包含:FROM用于定义基础镜像MAINTAINER指定维护者信息,可以省略不用写RUN和“安装命令”连在一起,可以用来安装工具依赖,但没有解压操作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/项目开发完成,经过本地测试passes,就可以写Dockerfile文件了2-2WriteaDockerfile在项目根目录下创建一个Dockerfile,使用上面的指令写一个描述脚本。需要注意的是这里“EXPOSE”指令暴露的端口号与入口文件中定义的端口号一致#DockerfileFROMcentos:7.9.2009RUNyummakecachefast;RUNyuminstallpython3-develpython3-pip-yRUNpip3install-ihttps://pypi.douban.com/simpleflaskCOPYmain.py/optWORKDIR/optEXPOSE8888CMD["python3","main.py"]2-3构建镜像#在当前文件夹下,根据Dockerfile构建镜像#镜像名称:xag/my_flask_web#--no-cache:不使用旧缓存构建镜像dockerbuild--no-cache-t"xag/my_flask_web".2-4运行镜像容器使用dockerrun命令基于镜像运行容器其中-d:表示容器在后台运行,不基于前台--name:使用的别名执行容器-p:用于配置宿主机与容器之间的端口映射#-d:后台运行#宿主机(9999)映射到容器中的8888(上面的Dockerfile已经暴露了8888端口)dockerrun-d--nameflask_web-p9999:8888xag/my_flask_web2-5测试一下最后在浏览器中,通过宿主机暴露的端口号9999访问项目。访问地址:http://127.0.0.1:9999/3。总结文章中以一个简单的Web项目来说明使用Docker部署项目其实Dockerfile是非常灵活的。还支持ARG/ENV设置环境变量,VOlUME命令挂载目录,ENTRYPOINT配置启动程序和参数等,这部分大家可以根据官网的介绍自行扩展。以上是这次。分享的全部内容,如果觉得文章还不错,欢迎关注公众号:Python编程学习圈,每日干货分享,发送“J”还能领取大量学习资料。或者去编程学习网了解更多编程技术知识。