【Python程序开发系列】使用Docker部署一个简单的Python应用程序

liftword4个月前 (01-15)技术文章26

这是我的第313篇原创文章。

一、引言

Docker 对于程序员来说,其实和Git差不多,基本上属于一个必备工具。如果你想使用这个工具,你就必须安装这个应用工具,至于在不同操作系统上安装Docker的方式网上有很多教程,这里不做赘述。

- 安装docker
- 若想在本地windows环境运行,就得在windows中安装docker,分为桌面版和内核版
- 若想在远程服务器Linux环境运行镜像,就得在Linux中安装docker,分为桌面版和内核版

我在E盘有一个名为docker-test的python项目,docker-test就是这个项目的根文件夹:

docker-test文件下有一个app包,包下面有一个python脚本hello.py,接下来简要说明如何将这个项目使用docker进行部署,运行这个项目(这里就是运行这个脚本)。

这个脚本实现的功能是一个请求百度官网并打印出请求内容。

二、使用Docker部署应用(Windows环境)

2.1 生成requirement.txt

项目应用程序中需要依赖一些Python库,为了方便在docker上进行安装,所以将需要的库整合到requirement.txt中。

在终端中进入到项目目录下,执行下面的命令,生成requirement.txt

pip freeze > requirements.txt

或者安装pipreqs,pip install pipreqs,执行pipreqs .,在docker-test文件下后会生成一个requirements.txt文件

2.2 创建Dockerfile

在docker-test文件夹下新建一个Dockerfile文件,与app文件夹同级,然后编辑Dockerfile文件:

FROM python:3.9.6  # 设置基于的python基础镜像
ADD . E:/docker-test # 将代码程序添加到E:/docker-test文件夹
WORKDIR E:/docker-test # 设置E:/docker-test文件夹是docker工作目录
RUN pip install -r requirements.txt # 安装程序依赖包
CMD ["python", "app/hello.py"] # 执行python项目主程序

2.3 创建镜像

如果要部署到其他服务器,可以先将项目(docker-test文件夹)上传到服务器,然后创建镜像:

docker build -t imagename Dockerfilepath
# docker build -t demo_f:v0 .

默认情况下,Docker镜像存储在Docker引擎的默认存储位置。在Windows上,它通常位于C:\ProgramData\Docker\windowsfilter目录下。在这个目录中,你可以找到以哈希值命名的文件夹,每个文件夹对应一个镜像。在Windows上,如果你使用的是Docker Desktop(Docker for Windows),默认情况下,镜像存储在WSL 2的虚拟机文件系统中。

命令运行之后本地就会生成一个镜像,在docker desktop里面就可以看到:

内核版需要命令查看:

docker images

接下来可以将上传到服务器,在服务器运行镜像即可;也可以将镜像上传到docker hub,进行拉取镜像,修改镜像等操作

2.4 启动容器

启动容器就是运行镜像,也就是运行项目的主程序

桌面版本直接点击运行:

内核版需要敲命令行:

docker run demo_f:v0

本文详细讲解了python程序部署到docker,一步一截图,超级详细,不会的小伙伴,自觉动手练习!!!!

作者简介: 读研期间发表6篇SCI数据算法相关论文,目前在某研究院从事数据算法相关研究工作,结合自身科研实践经历持续分享关于Python、数据分析、特征工程、机器学习、深度学习、人工智能系列基础知识与案例。关注gzh:数据杂坛,获取数据和源码学习更多内容。

原文链接:
【Python程序开发系列】教你使用Docker部署一个简单的Python应用程序(案例+源码)

相关文章

值得学习练手的70个Python项目(附代码),太实用了

Python丰富的开发生态是它的一大优势,各种第三方库、框架和代码,都是前人造好的“轮子”,能够完成很多操作,让你的开发事半功倍。下面就给大家介绍70个通过Python构建的项目,以此来学习Pytho...

想要开发更好的Python项目,代码质量是关键

Hi!我是W3Cschool编程狮的小狮妹!当我们谈论编程,代码质量是一个至关重要的因素。无论你是一位新手还是经验丰富的开发者,都知道写出高质量的代码不仅可以提高程序的可维护性,还可以减少错误和问题的...

python开发

python接单 、爬虫、python作业、软件开发Python代码跑通,模型优化,算法改进深度学习,神经网络,网页开发,EXE软件开发,脚本开发等等...

【全200集】最完整的Python教程,7天零基础入门Python,动画

1-简明Python2-Python编程从入门到实践3-Python数据分析PDF4-Python爬虫开发与项目实战...

【Python程序开发系列】教你将python项目(程序)打包发布到Pypi

这是我的第324篇原创文章。一、引言当逐渐在用python开发项目或者日常使用时,一般需要大量使用别人提供的包,这些包能高效的帮助我们快速高效的完成指定任务或者需求,不过有时也会想,自己如果能够把自己...

真零基础Python开发web

Python开发web服务的优势是开发效率高,可能只需要java五分之一的代码量。Python搭建web服务有许多框架,本文介绍Django和bottle两个框架。Django安装首先,安装该框架安装...