一、Docker安装及入门
1.1 安装
去官网下载安装即可Docker
1.2 Docker入门
请参考DaoCloud团队写的的Docker介绍
个人理解:
- docker:集装箱式部署
- 镜像:系统光盘
- 容器:光盘内装的系统
采用的是daocloud源的centOS镜像:
二、CentOS镜像下载及运行
2.1 CentOS下载
#下载最新的centOS,可把latest替换成你需要的centOS版本
docker pull daocloud.io/centos:latest
2.2 运行
#运行并进入容器bash -it:进入bash --name:容器名称[可选]
docker run -it --name demo daocloud.io/centos:lastest
2.3 其他常用命令
#运行时挂载本地文件到容器内 -v 本地路径:容器路径 -p 本地端口:容器端口
docker run -it -v /usr/opencv:/opencv -p 5555:80 --name demo daocloud.io/centos:lastest
#端口映射
#开启容器
docker start demo
#进入容器bash
docker exec -it demo /bin/bash
# 后台运行 -d Ctrl + P + Q
# 进入后台运行的容器
docker attach dreamy_ritchie或者用ID
#删除容器
docker stop xxx
#停止所有容器
docker stop $(docker ps -a -q)
#删除容器
docker rm xxx
#删除所有容器
docker rm -f $(docker ps -a -q)
#删除镜像
docker rmi xxx
三、安装opencv-python环境
注:如遇yum或pip安装缓慢请设置国内源,自行百度~:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xxx
3.1 安装pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
#下载完成之后,就可安装pip:
python get-pip.py
3.2 安装所需组件
3.2.1 opencv-python
核心图像处理库
#由于新版需要 libSM.so.6等文件我们并不需要,装旧版
pip install 'opencv-contrib-python==3.3.0.9'
3.2.2 Flask
轻量级Web框架
pip install flask
3.2.3 imutils、skimage
图像处理工具库
yum install gcc libffi-devel python-devel openssl-devel -y
pip install imutils
pip install scikit-image
3.2.4 qiniu
七牛上传库
#请自行在upload.py内配置七牛access_key及secret_key
pip install qiniu
3.3 打包镜像
使用ctrl+D退出bash后运行:
#demo-容器 opencv:0.5-镜像名
docker commit demo opencv:0.5
安装好环境的镜像:centOS-opencv镜像 密码:zef1
使用以下命令即可导入:
docker load < centOS-opencv.tar
四、运行opencv图像服务器
4.1 源码
python源码:opencv_edge_detection
使用我们刚才打包的镜像并挂载源码目录:
#把本地的5555端口映射到容器的5000端口
docker run --name work -it -p 5555:5000 -v [源码路径]:/opencv opencv:0.5
4.2 运行
python /opencv/server.py
成功后显示:
[root@306502ecc8ff opencv]# python server.py
* Serving Flask app "server" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 127-847-463
在本地浏览器输入:
返回"hello world!" 表示服务已可正常访问