将本地Python项目打包成docker镜像,上传到服务器,在docker中运行
创始人
2025-01-20 22:03:56
0

文章目录

  • Docker环境
  • 创建虚拟环境
    • pycharm使用虚拟环境
    • 准备打包
    • 保存为镜像文件
    • 拆分文件、合并文件
    • 加载镜像文件
    • 启动容器
    • 进入容器
    • 退出容器
    • 复制物理路径到容器指定路径
    • 删除镜像、容器
      • 删除镜像
      • 删除容器
  • 参考文献

Docker环境

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

创建虚拟环境

虚拟环境可以搭建独立的Python运行环境,使得单个项目的运行环境与其他项目互不影响。
在这里插入图片描述
安装完成之后,便可以直接创建虚拟环境了,使用命令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虚拟环境.
在这里插入图片描述
退出虚拟环境

在当前目录下输入命令deactivate.bat即可
在这里插入图片描述

pycharm使用虚拟环境

1、打开Pycharm,然后依次点击左上方的file->Settings
2、之后依次Project->Project Interpreter,使用虚拟环境的python解释器,下载需要的包,环境进行隔离。
在这里插入图片描述
在这里插入图片描述

准备打包

1.创建好虚拟环境后,在项目中创建一个hello.py,内容简单写一些
在这里插入图片描述
2.将项目依赖库进行导出,使用pip freeze > requirements.txt命令
我们在虚拟环境中下载好代码需要的包之后,将依赖库进行导出,会生成requirements.txt文件,里面保存的是包环境
如果python的版本和包的版本存在冲突,可以将requirements.txt中包的版本去掉,这样就会自动下载对应的包
在这里插入图片描述
3.在桌面上新建一个文件夹,文件夹内容如下
在这里插入图片描述
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是镜像的名称,随意命名
在这里插入图片描述
7.执行docker run -it hello-test,可以看到输入了请求百度返回的HTML信息和我在hello.py文件中打印的Hello 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.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

相关内容

热门资讯

热点推荐!微信小程序途游辅助免... 热点推荐!微信小程序途游辅助免费,有哪些免费的wpk作弊码,细节揭秘(有挂技巧)-哔哩哔哩是一款可以...
重大消息!互游辅助脚本,哈糖大... 重大消息!互游辅助脚本,哈糖大菠萝怎么开挂,德州教程(有挂助手)-哔哩哔哩;互游辅助脚本简单的灵活控...
推荐一下!福建天天开心辅助真实... 推荐一下!福建天天开心辅助真实性,黑桃a3辅助,一贯有挂(哔哩哔哩)1、起透看视 福建天天开心辅助真...
今日焦点!腾讯欢乐卡五星辅助器... 今日焦点!腾讯欢乐卡五星辅助器,wepoker怎么下载游戏,力荐教程(真是有挂)-哔哩哔哩;亲,有的...
解谜一下!大宝苏北麻将怎么开挂... 解谜一下!大宝苏北麻将怎么开挂,开心游戏快跑辅助,其实存在有挂(哔哩哔哩)大宝苏北麻将怎么开挂能透视...
一分钟揭秘!边锋老友杰克辅助,... 一分钟揭秘!边锋老友杰克辅助,wepoker私人局俱乐部怎么进,插件教程(新版有挂)-哔哩哔哩;AI...
详情一下!九九山城辅助免费,浙... 详情一下!九九山城辅助免费,浙江宝宝游戏辅助工具,一贯存在有挂(哔哩哔哩)1、下载好九九山城辅助免费...
玩家必看教程!白金岛跑胡子脚本... 玩家必看教程!白金岛跑胡子脚本,微扑克游戏辅助器,科技教程(有挂秘诀)-哔哩哔哩;白金岛跑胡子脚本最...
有挂一下!老友广东潮汕麻雀,山... 有挂一下!老友广东潮汕麻雀,山西扣点带你辅助工具破解,都是是有挂(哔哩哔哩)1、老友广东潮汕麻雀模拟...
今日重大通报!花舍辅助,wep... 今日重大通报!花舍辅助,wepoker软件靠谱么,必备教程(有挂方式)-哔哩哔哩;1、不需要AI权限...