前篇链接:https://blog.csdn.net/qq_34717531/article/details/107933650
一、容器环境配置
可以在这里下载点环境镜像:https://hub.docker.com/r/nvidia/cuda
我们准备将之前的flask检测应用使用docker封装部署,但是yolov4需要最新的opencv4.4环境,并没有现成的opencv4.4环境镜像,
我就随便下载了一个opencv3.6,使用yolov3flask测试一下。
docker pull haakenlid/opencv:3.6
首先建立一个带端口的容器:
sudo docker run -ti -d -p 4555:4555 --name ycc haakenlid/opencv:3.6 bash
将本机文件夹(yolov3flask,可参考:https://blog.csdn.net/qq_34717531/article/details/107818606)拷贝到容器(CONTAINER ID:f231f705b5ca)中:
docker cp /home/ycc/yolov3flask f231f705b5ca:/
换源(https://blog.csdn.net/qq_34717531/article/details/107810920) 和安装flask。
(换源)pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
pip install flask
pip install pillow
进入容器并运行web.py
sudo docker exec -ti ycc bash
cd yolov3flask
python web.py
问题:会出现端口正常映射,但是浏览器却无法访问的情况。
解决:在代码中将ip地址改为0.0.0.0,保存后重新在Docke中部署一遍,在浏览器输入对应的ip即可访问成功。
app.run(host='0.0.0.0',port=4555, debug=True)
再次运行,成功如下:
至此,docker flask yolov3环境配置完成,并成功运行。
二、容器打包成镜像
打包镜像指令解释:
-a:作者 , -m: 解释 ,容器名,新镜像名
docker commit -a "ycc" -m "yolov3flask" f231f705b5ca yolov3flask:v1
我们的yolov3flask就打包好了,在新镜像中建立一个容器测试一下。(因为4555端口已被占用,所以使用5000端口)
sudo docker run -ti -d -p 5000:4555 --name yccv1 yolov3flask:v1 bash
测试成功,结果如下:
至此,我们的yolov3flask 使用docker部署成功。