将本地Python项目打包成docker镜像,上传到服务器,在docker中运行

这篇具有很好参考价值的文章主要介绍了将本地Python项目打包成docker镜像,上传到服务器,在docker中运行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker环境

  • windows11
  • Docker下载地址:https://docs.docker.com/desktop/install/windows-install/

创建虚拟环境

虚拟环境可以搭建独立的Python运行环境,使得单个项目的运行环境与其他项目互不影响。
将本地Python项目打包成docker镜像,上传到服务器,在docker中运行
安装完成之后,便可以直接创建虚拟环境了,使用命令virtualenv env1进行创建

C:\Users\china>virtualenv env1
Using base prefix 'c:\\program files\\python36'
New python executable in C:\Users\china\env1\Scripts\python.exe
Installing setuptools, pip, wheel...done.

其中activate.bat文件,表示激活虚拟环境。进入到Scripts目录,在该目录下输入activate.bat命令,即可激活Python虚拟环境.
将本地Python项目打包成docker镜像,上传到服务器,在docker中运行
退出虚拟环境

在当前目录下输入命令deactivate.bat即可
将本地Python项目打包成docker镜像,上传到服务器,在docker中运行

pycharm使用虚拟环境

1、打开Pycharm,然后依次点击左上方的file->Settings
2、之后依次Project->Project Interpreter,使用虚拟环境的python解释器,下载需要的包,环境进行隔离。
将本地Python项目打包成docker镜像,上传到服务器,在docker中运行
将本地Python项目打包成docker镜像,上传到服务器,在docker中运行

准备打包

1.创建好虚拟环境后,在项目中创建一个hello.py,内容简单写一些
将本地Python项目打包成docker镜像,上传到服务器,在docker中运行
2.将项目依赖库进行导出,使用pip freeze > requirements.txt命令
我们在虚拟环境中下载好代码需要的包之后,将依赖库进行导出,会生成requirements.txt文件,里面保存的是包环境
如果python的版本和包的版本存在冲突,可以将requirements.txt中包的版本去掉,这样就会自动下载对应的包
将本地Python项目打包成docker镜像,上传到服务器,在docker中运行
3.在桌面上新建一个文件夹,文件夹内容如下
将本地Python项目打包成docker镜像,上传到服务器,在docker中运行
4.app中的内容其实就是Python项目根目录以及子目录文件,直接将新建的hello.py放到app目录下
5.编写Dockerfile,创建一个文件叫Dockerfile,内容如下:
最好是先执行pip install -r requirements.txt -i https://pypi.douban.com/simple/命令,确认无误,再编写Dockerfile文件

#基于的基础镜像
FROM python:3.7.9
#代码添加当前目录所有内容到code文件夹
ADD . /code
# 设置code文件夹是工作目录
WORKDIR /code
# 安装支持
RUN pip install -r requirements.txt -i https://pypi.douban.com/simple/
CMD ["python", "./app/predict/select_data_combine.py"]

6.执行docker build -t hello-test .这里注意,hello-test后面有一个点,这里的hello-test是镜像的名称,随意命名
将本地Python项目打包成docker镜像,上传到服务器,在docker中运行
7.执行docker run -it hello-test,可以看到输入了请求百度返回的HTML信息和我在hello.py文件中打印的Hello Docker~
将本地Python项目打包成docker镜像,上传到服务器,在docker中运行

保存为镜像文件

docker save ubuntu>ubuntu.tar

保存Ubuntu为ubuntu.tar文件

拆分文件、合并文件

如何文件较大传输耗时,可以切割文件,分词传输,再合并文件即可。

split -b 500m log.txt newfile #切分文件log.txt,按照500MB进行切分
cat newfile* > orifile #合格文件为整个

加载镜像文件

docker load -i redis5014.tar

解压镜像文件,查看镜像

docker images

找到对应的镜像,执行镜像

docker run -it 镜像ID

启动容器

先查看容器是否开启

docker ps

如果发现未开启,显示所有容器

docker ps -a

开启指定的容器

docker start 容器ID

开启容器失败,按照如下操作:

docker exec -it 6198ef53d943 bash
Error response from daemon: Container 6198ef53d9431a3f38e8b38d7869940f7fb803afac4a2d599812b8e42419c574 is not running

docker commit 6198ef53d943
sha256:ace7ca65e6e3fdb678d9cdfb33a7a165c510e65c3bc28fecb960ac993c37ef33

docker run -it ace7ca65e6e bash
root@72d38a8c787d:/#

进入容器

sudo docker exec -it 容器ID bash

退出容器

exit

复制物理路径到容器指定路径

将本地文件复制到docker容器中

docker cp 本地文件路径 容器ID/容器NAME:容器内路径
docker cp /Users/wuhanxue/Downloads/rabbitmq_delayed_message_exchange-3.9.0.ez 1faca6a70742:/opt/rabbitmq/plugins

或者

docker cp /Users/wuhanxue/Downloads/rabbitmq_delayed_message_exchange-3.9.0.ez rabbit:/opt/rabbitmq/plugins

完整语句

sudo docker run -it -v /home/ubuntu/anti/docker_test:/code 2286df316633 /bin/bash

删除镜像、容器

删除镜像

直接删除镜像

docker rmi 镜像ID

强制删除镜像

docker rmi -f image_id

删除容器

删除容器

docker rm 容器ID

如果删除不掉,先关闭容器,再删除

docker stop 容器ID

强制删除容器

docker rm -f container_id

优雅地删除镜像的最佳做法是:先停止容器,再删除容器,最后删除镜像。
优雅地删除容器的最佳做法是:先停止容器,再删除容器。文章来源地址https://www.toymoban.com/news/detail-501684.html

参考文献

  • https://www.cnblogs.com/xiao-apple36/p/12810941.html
  • https://blog.csdn.net/songlh1234/article/details/110400673
  • https://stackoverflow.com/questions/29599632/container-is-not-running
  • https://blog.csdn.net/u014282578/article/details/127866389

到了这里,关于将本地Python项目打包成docker镜像,上传到服务器,在docker中运行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何把本地flask项目(框架)上传到服务器(Linux),并后台持续运行(包括requirements文件生成,python项目与域名绑定,保姆级教程)

     2023年中旬,参加了一个比赛,需要搭建一个网站。在不断探索琢磨之后,搭建了一个基于flask的web。直接上干货: 一、首先,在本地准备好自己的flask项目。包括最基本的三个文件: 然后准备生成requirements.txt文件,这个文本文件会告诉服务器你的项目运行所需要的环境,即

    2024年02月04日
    浏览(38)
  • 如何将项目打包上传到NuGet服务器?

    作者:西瓜程序猿 主页传送门:https://www.cnblogs.com/kimiliucn 在我写[在.NET Framework中使用RocketMQ(阿里云版)]这篇博客的时候,因为封装了很多代码在单独的DLL中,包括生产者、消费者以及官方SDK等等,然后都在博客中体现出来导致博客大量代码,然后有位读者就建议打包成NuGet包

    2024年02月10日
    浏览(37)
  • docker容器打包成镜像,在新的服务器上部署环境

    2719a6b5b8e1是容器id(用docker ps 命令查看) , my_paddle2.2.2:v1 是自己打包的镜像的名字命名格式,有冒号的 docker commit -a “shi” -m “to150” 2799a6b6b8e1 my_paddle2.2.2:v1 -o 和 是一个意思都是打包镜像的符号 sparkdemo:v1 ,就是有冒号,整体镜像名字规则 docker images查看镜像,后用命令保存

    2023年04月08日
    浏览(44)
  • SpringBoot+Vue前后端分离项目在Linux系统中基于Docker打包发布,并上传镜像到阿里镜像私仓

    将打好的jar包放到咱们opt目录下的自定义文件夹内 打包成功后 –rm 代表退出之后,容器移动删除 可以看到成功启动了服务 阿里云免费私仓 创建好自己的镜像仓库后会显示操作指南 身份登录 将镜像推送到Registry 可以在镜像仓库中进行查看 拉取镜像 default.conf 1.root:设置静态

    2024年04月17日
    浏览(70)
  • 如何将项目打包上传到NuGet服务器(图文教程)?

    作者:西瓜程序猿 主页传送门:https://www.cnblogs.com/kimiliucn 在我写[在.NET Framework中使用RocketMQ(阿里云版)]这篇博客的时候,因为封装了很多代码在单独的DLL中,包括生产者、消费者以及官方SDK等等,然后都在博客中体现出来导致博客大量代码,然后有位读者就建议打包成NuGet包

    2024年02月10日
    浏览(30)
  • 关于打包多模块SpringBoot项目并通过宝塔上传服务器

    打包 —— 如何打包多模块项目,参考b站up主:[喜欢编程的代先生] 的视频 总结:1. 对着视频里看一下父模块和各个子模块pom.xml文件关于打包工具的依赖是否正确。2. 从最底层开始打包,逐层向上,最后再合并打包。 部署 —— 打包好后,先把jar包上传到文件夹 运用java项目

    2024年02月11日
    浏览(32)
  • GIT 将本地项目上传至服务器

    1. 首先在远程仓库选择好群组后,创建项目,项目名称与你本地的项目名称一致,然后复制项目URL  2. 进入到本地项目的根目录下,右键打开 Git Bash Here 3. 在打开的git 窗口先做初始化,生成.git文件  4. 添加项目的所有文件,. 代表是全部,如果只是部分文件,可以替换 5. 提

    2024年02月12日
    浏览(33)
  • Python项目打包, docker build构建docker镜像, Docker Compose (Docker编配)

    将本地Python项目打包构建docker镜像,并在docker中运行【流程1-8】 8、Docker Compose (Docker编配) 附录: 其他常用docker命令   2.2 下载python项目所需依赖包到指定文件夹py_pkgs:    在es-python文件夹下,新建一个Dockerfile文件: 5. 假设宿主机上已经装好docker, 此时切换到es-python路径下  

    2024年02月15日
    浏览(42)
  • Docker环境下将已运行的容器打包成新的镜像并运行在另一个服务器上的Docker容器中

    1.1、使用root账户登录进入Linux系统中,键入 docker ps 命令。 2.1、正在运行的容器一行中CONTAINER ID一列下面的字符串就是容器id,复制想要打包的容器ID并执行 docker commit 容器id 容器新名称 例如: docker commit e973c1d6731e mysql/newmysql 3.1、在根目录下键入 docker save -o 新镜像名称.tar 新

    2024年02月16日
    浏览(37)
  • 利用vscode--sftp,将本地项目/文件上传到远程服务器中详细教程

    1、首先在 vscode 中下载  sftp : 2、然后在 vscode 中打开本地将要上传的项目或文件:  3、安装完后,使用快捷键  ctrl+shift+P  打开指令窗口,输入  sftp:config  ,回车,在当前目录中会自动生成  .vscode  文件夹及  sftp.json host:工作站的IP地址 port:ssh的端口 username:工作站自

    2024年02月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包