首页 > 编程语言 >把python项目部署在docker上

把python项目部署在docker上

时间:2024-09-04 11:52:15浏览次数:4  
标签:容器 5000 python svnhook 部署 镜像 docker

前提,已经安装好docker了,docker的安装,请见另一篇博客

介绍一下需要运行的python项目结构,平时在pycharm里面只需要运行app.py文件即可

 

项目步骤如下:

1:创建一个上传到Centos系统的文件夹(名字随意)

docker_svnhook是要上传到Linux系统,生成Dokcer镜像的文件夹

这个文件夹下面有两个文件

一个是Dockerfile文件(没有后缀名)

Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。有了 Dockerfile,就可以创建我们所需要的镜像

内容如下

# 使用官方的 Python 3.9 作为基础镜像
FROM python:3.9-slim

# 设置工作目录
WORKDIR /code

# 将 requirements.txt 复制到容器中
COPY /svnhook/requirements.txt .

# 安装依赖项
RUN pip install --no-cache-dir -r requirements.txt

# 将应用程序代码复制到容器中
COPY . .

# 暴露应用程序运行的端口
EXPOSE 5000

# 运行 Flask 应用程序
CMD ["python", "/code/svnhook/package/app.py"]

 

 需要注意的是,如果工作目录设定好了以后,需要在CMD启动程序填入完成的路径,不然会报路径错误

 

一个svnhook文件夹(名字随意),包含了工程的代码,还有运行工程所需要的环境列表

 

package就是python项目的源码所在目录,直接复制过来

 

 requirements.txt就是我们的依赖,生成方法如下

cmd命令进入工程目录,执行pip freeze > requirements.txt

 

会在该目录下生成一个requirements.txt文件,会把我们整个环境中的包都列出来,我们自己也可以看看多了那些事不需要的包,或者缺了那些,用以下的格式补进去就可以了

 

2:上传到linux环境,生成镜像

2.1:用ftp把文件上传到虚拟机系统的某个路劲,如果文件太大了,可以压缩后再上传

可以先在虚拟机创建一个文件夹

mkdir svnhoos

2.2进入docker_svnhooks文件夹

 

2.3:创建镜像

         执行命令:docker build -t svnhooks .

         svnhooks 为创建的镜像名称,. 表示当前目录(docker_svnhooks)

 

2.4:查看镜像是否创建成功

docker images

 看到刚刚创建的svnhook的镜像,已经存在了

 

3:运行镜像,生成并启动容器

执行命令

docker run -it -p 5000:5000 --name svnhook svnhooks

-it:表示交互式终端的容器,非启动后立刻结束的容器,初始调试可以用这个,可以看到控制台输出内容,只是部署的话用 -d  后台运行

-p 5000:5000:表示将docker的5000端口,映射到Linux虚拟机的5000端口

也就是说,访问Linux虚拟机的5000端口,就是在访问docker容器的5000端口,这里因为我的工程暴露的端口是5000,所以我设的是5000

--name svnhook:给容器取个名字,嫌麻烦可以省去

svnhooks:容器是用哪个镜像启动的(一个容器,必须依赖一个镜像启动)

现在访问系统,只需要访问虚拟机的IP加端口即可

 

4:代码有改动需要重新部署

只需要把镜像删除后,再按照上面的步骤重新部署即可

5:删除镜像

5.1:先停止容器 ,用 docker ps 查看正在运行的容器

 

然后使用docker stop  container id,就可以停止容器

 

 5.2:删除容器

docker rm  container id

5.3:删除镜像,先查看镜像 docker iamges

找到要删除的镜像后,执行:docker rmi image id

如果您希望强制删除镜像并且不想手动删除相关容器,可以使用 -f 选项:

docker rmi -f <image_name_or_id>

 这样会强制删除镜像及所有依赖它的容器。请谨慎使用。

本篇文章有参考以下文章

标签:容器,5000,python,svnhook,部署,镜像,docker
From: https://www.cnblogs.com/a565810497/p/18396174

相关文章

  • 在Python中,文本查找和替换的常用操作
    1.使用字符串方法进行查找和替换Python的字符串类(str)提供了简单的查找和替换方法,如find()、replace()等。示例:text="Hello,world!"#查找子字符串的位置position=text.find("world")print(position)#输出:7#替换子字符串new_text=text.replace("world......
  • 在 Python 脚本中处理错误
    在Python脚本中处理错误是确保程序稳健性的重要部分。通过处理错误,你可以防止程序因意外情况崩溃,并为用户提供有意义的错误消息。以下是我在Python中处理错误的常见方法和一些最佳实践:1、问题背景当运行pyblog.py时,遇到了以下错误:Traceback(mostrecentcalllast):File......
  • 网络自动化:利用Python和Ansible实现网络配置管理
    1.环境准备安装Python和Ansible•安装Python:•确保您有Python3版本,可以通过以下命令检查:python3--version•如果没有安装Python3,可以根据操作系统的不同,通过包管理器或直接从Python官方网站下载。•安装Ansible:•Ansible是一个开源的自动化工具,使......
  • 科研绘图系列:python语言散点相关系数图(scatter plot)
    介绍采用plot_pairwise_density函数对数据画图,展示数据的散点分布和密度分布。散点图(ScatterPlot)是一种数据可视化技术,用于显示两个变量之间的关系。它通过在直角坐标系中绘制数据点来展示数据的分布和趋势。每个数据点在横轴(X轴)和纵轴(Y轴)上都有一个坐标值,分别对应两个......
  • nginx部署前端项目 (Linux版)
    目录一:nginx部署前端项目(Windows版)二:下载相关依赖三:下载安装nginx四:启动nginx五:部署前端项目一:nginx部署前端项目(Windows版)nginx部署前端项目(Windows版本)二:下载相关依赖yuminstall-ygcc-c++pcrepcre-develzlibzlib-developensslopen......
  • 科研绘图系列:python语言散点分布图(scatter plot)
    介绍散点分布图(ScatterPlot)是一种常用的数据可视化图表,用于展示两个变量之间的关系。它通过在二维平面上绘制一系列点来表示数据点的分布,每个点的横坐标和纵坐标分别对应于两个变量的数值。散点分布图非常适合于观察和分析变量之间的相关性、趋势、聚类、异常值等特征。......
  • 在centos上安装docker
    第一步,安装docker,因为我是在centos上面安装的docker,这里就细讲centos的安装步骤1:官方建议Linux内核为3.10及以上,我们可以查看一下自己的Linux内核uname-r2:启用centos-extras存储库该存储库默认情况下是处于启用状态的,如果之前禁用过,需要重新启用它yumrepolistenabled......
  • 如何利用Anaconda开始使用python?
    目前Anaconda公司已经不允许清华镜像站提供下载链接了~但是去官网下载又很慢,所以我把Anaconda安装包放到其他地方,地址是:https://pan.xunlei.com/s/VO4PGqE1TWiFnrg-_GWRWIQUA1?pwd=9jvu。注意,这个安装包是64位的,一般电脑都是64位的了吧。如果你不知道你的电脑是64位还是x86,那么就......
  • MySQL5.7.36之高可用架构部署-MHA
    配置关键:程序软连接(所有节点)。因为MHA只能从/usr/bin中进行调用ln-s/application/mysql/bin/mysqlbinlog/usr/bin/mysqlbinlogln-s/application/mysql/bin/mysql/usr/bin/mysql1、配置互信(主库上操作)rm-rf/root/.sshssh-keygencd/root/.sshmvid_rsa.pub......
  • 如何利用Anaconda开始使用python?
    目前Anaconda公司已经不允许清华镜像站提供下载链接了~但是去官网下载又很慢,所以我把Anaconda安装包放到云盘中了,可以方便大家下载!地址是:https://pan.xunlei.com/s/VO4PGqE1TWiFnrg-_GWRWIQUA1?pwd=9jvu。注意,这个安装包是64位的,一般电脑都是64位的了吧。如果你不知道你的电脑是6......