当前位置: 首页 > 科技观察

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

时间:2023-03-13 19:11:11 科技观察

在传统物理机或云服务器上部署项目会存在一些痛点,例如:项目部署慢、资源浪费、迁移困难、扩展性低等。使用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():return"Testcontainerdeployment!"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://img.ydisp.cn/news/20220628/jhckyaddlcyflaskCOPYmain.py/optWORKDIR/optEXPOSE8888CMD["python3","main.py"]2-3在当前文件中构建镜像#文件夹下,根据Dockerfile构建镜像#Mirrorname:xag/my_flask_web#--no-cache:镜像构建不使用旧缓存dockerbuild--no-cache-t"xag/my_flask_web".2-4run镜像容器使用dockerrun命令运行一个基于镜像的容器。-d:代表容器在后台运行,不基于前台--name:用来执行容器的别名-p:用来配置宿主机和容器之间的端口映射#-d:后台运行#Host(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是非常Flexible的,它还支持ARG/ENV设置环境变量,VOLUME命令挂载目录,ENTRYPOINT配置启动程序和参数等等,这部分大家可以根据官网介绍自行扩展https://docs.docker.com/engine/reference/builder/如果觉得文章还不错,请点赞、分享、留言,因为这将是我继续输出更高的最大动力-优质文章!