Docker打包OpenCV Python程序
2022/9/14 1:16:21
本文主要是介绍Docker打包OpenCV Python程序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
打包过程
- pip freeze > requirements.txt
- 编写dockerfile,需要注意的是这里安装了一些c++库文件供opencv使用,让笔者在打包时吃了一些苦头
# 将官方 Python 运行时用作父镜像 FROM python:3.9-slim # 将工作目录设置为 当前目录 WORKDIR . # 将当前目录内容复制到容器中 ADD . . RUN apt-get update RUN apt install -y g++ RUN apt install -y cmake RUN apt install -y make RUN apt install -y wget unzip RUN apt-get -y install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev # 安装 requirements.txt 中指定的任何所需软件包 RUN pip install -r requirements.txt # 定义环境变量 #ENV NAME World # 在容器启动时运行 main.py CMD ["python", "main.py"] #CMD ["python","./apps/min.py","worker","-l","info"] ##faust程序worker启动命令 #指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务 EXPOSE 5005
- docker根据Dockerfile构建镜像
docker build -f Dockerfile -t qrdetect:1.1 .
- 根据名称为qrdetect:1.1的镜像运行名称为qr的容器,暴露容器内的端口5005为对外8081的端口
docker run --name qr -p 8081:5005 -d qrdetect:1.1
docker实用命令
由于经验问题,我们可能会要经常使用一些镜像和容器命令
- 列出容器id
docker ps -a
- 列出id为xx容器的日志
+ docker logs id
- 列出镜像id
docker image ls
- 删除指定id镜像
docker rmi id
- 删除指定id容器
docker rm id
- 停止运行指定id容器
docker stop id
- 导出指定id镜像
docker save -o qrdetect.tar 483128b19e21
- 加载指定id镜像
docker load --input qrdetect2.tar
- 导入指定id容器
docker import qrdetect.tar qr:1.1
- 导出指定id容器
docker export bf2358939836 > qrdetect.tar
经验教训
最好不用wsl进行打包,问题比较多,还是直接linux环境打包比较好
参考资料:
https://dennislwm.netlify.app/posts/installing-minikube-on-ubuntu-with-wsl-backend/
https://zhuanlan.zhihu.com/p/272541376
https://answers.microsoft.com/zh-hans/windows/forum/all/win11如何关闭hyper-v/25b2974d-80e5-44e6-9e78-6fbd8e3e519f
https://docs.docker.com/engine/install/ubuntu/
https://zhuanlan.zhihu.com/p/53707590
https://blog.csdn.net/foreverhot1019/article/details/102725793
https://blog.csdn.net/weixin_44796670/article/details/115900538
这篇关于Docker打包OpenCV Python程序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14Docker端口:你真的公开了哪些东西?
- 2024-11-14用DOCKER在家里的实验室里搞些酷炫的玩意儿
- 2024-11-05掌握Docker:高效安全的十大最佳实践
- 2024-11-05在 Docker Compose 中怎么设置端口映射-icode9专业技术文章分享
- 2024-11-05在 Docker Compose 中怎么设置环境变量-icode9专业技术文章分享
- 2024-11-04Docker环境部署项目实战:新手入门教程
- 2024-11-04Docker环境部署资料:新手入门教程
- 2024-11-01Docker环境部署教程:新手入门指南
- 2024-11-01超越Docker:苹果芯片上的模拟、编排和虚拟化方案讲解
- 2024-11-01Docker环境部署:新手入门教程