Docker入门——实战图像分类

一、背景

思考:

在一个项目的部署阶段,往往需要部署到云服务器或者是终端设备上,而环境的搭建往往是最费时间和精力的,特别是需要保证运行环境一致性,有什么办法可以批量部署相同环境呢?

Docker本质——打包环境;

将本机的环境和代码一同打包在docker环境中,生成一个容器,可以部署到任何服务器和机器下,节省了环境安装的精力并确保了环境的一致性;

二、window安装docker

Window建议安装docker toolbox,因为window家庭版安装docker for window可能会出现不适配情况;

下载地址:https://github.com/docker-archive/toolbox/releases

(多个版本,选择一个版本即可,下载exe版本)

在这里插入图片描述

安装过程就是无脑安装即可,默认安装在C盘,安装后会出现两个程序,一般使用第一个程序;

在这里插入图片描述

打开Docker Quickstart Terminal,默认会下载一个最新的镜像,由于网络问题会出现以下问题:

在这里插入图片描述

这里手动复制下载的地址,在浏览器中下载后放在C:\Users\用户名\ .docker\machine\cache下:

在这里插入图片描述

重新运行一遍,短暂初始化后出现以下界面,即代表Docker安装成功:

在这里插入图片描述

接下来就可以实际使用docker来安装一个环境了;

三、配置阿里云加速器

官方容器下载地址:https://hub.docker.com/

官方下载存在一个问题,就是下载速度不够快,这里需要配置以下阿里云加速器;

步骤:

1、登录阿里云平台,找到镜像加速器选项;

网站地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

在这里插入图片描述

2、在Docker中配置,执行以下命令:

1.docker-machine ssh default 
2.sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror= 加速器地址|g" /var/lib/boot2docker/profile 
3.exit 
4.docker-machine restart default

在cmd命令行下执行docker info,如出现下面信息表示加速成功;

在这里插入图片描述

四、下载pytorch镜像

首先在官方hub里面找需要安装的镜像名称;

https://hub.docker.com/r/pytorch/pytorch

这里复制右边的命令到本地docker启动窗口即可,安装完毕后查看docker images即可看到;

启动该镜像:

docker run -it pytorch/pytorch

在这里插入图片描述

这里可以看出,该镜像自带的系统还是ubuntu,并且已经预装好了python3.7,当然这是一个极简环境,也就是说很多要用的包是没有的,需要自己安装;

比如要安装一个opencv的话,最好用上阿里源进行安装,这样安装速度是最快的;

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

这里镜像已经成功安装了,下面可以跑一个简单的分类案例试试;

五、docker中run一个分类案例

首先需要将本地的项目copy到容器中,在拷贝地址下打开git;

在这里插入图片描述

后面这一串是容器id和需要拷贝到的文件夹地址(默认会创建)

安装缺少的一些包后,运行一下程序看看能否成功;

这里我们是通过服务部署的方式运行一个模型,所以会看到服务开启的界面:

在这里插入图片描述

但是我们需要打开另一个docker窗口开执行程序,这里就需要用到新的命令了;

docker exec -it id /bin/bash

在这里插入图片描述

可以看出我们成功请求并且得到返回结果,到这里可以开始自由的在docker跑自己的程序了,缺什么就安装什么即可!

六、上传自己的docker环境

在阿里云容器管理界面创建一个新的仓库;

在这里插入图片描述

点击管理会有一些操作命令指示,根据步骤在本机执行即可;

1、登录阿里云Docker Registry
docker login --username= registry.cn-hangzhou.aliyuncs.com
2、将镜像推送到Registry
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/..../pytorch:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/.../pytorch:[镜像版本号]

在这里插入图片描述

这里显示已经正在上传中,镜像文件比较大,需要的时间比较长;

七、Docker的一些进阶操作

在使用Jeston jx1开发版时候,使用docker配置GPU环境需要操作复杂一些,这里简单讲述下;

首先就是将本机的Nvidia环境映射到docker容器中;

docker run --runtime nvidia -it 【容器id】 /bin/bash

这里runtime超参数可以将本机的CUDA的环境,一些动态库直接映射到容器中去,在使用的时候也遇到一些问题,就是映射并没有完全成功,其原因找了很久,最后在ubuntu下重新安装一遍nvidia-docker这个包解决了,遇到问题的可以试试,这时候容器中的nvcc版本就是和本机一致的;

下一步就是将本机的一些数据或模型映射到容器中,虽然也可以用docker cp命令将文件copy到容器中,但如果大的数据集这个时间会花费很长,采用映射的方式是最方便快捷的,并且生成的新的图像也可以在本机上直接访问,不需要来回传输;

docker run -it --rm --runtime nvidia -v 【容器文件路径】:/【本机文件路径】 【容器ID】 /bin/bash

还有一些进阶使用,比如如何在docker中使用摄像头,如何在docker运行带图形化的界面程序,在这里就不具体讲解了,如果有需要的可以查阅一下文档;

总结

本篇Docker入门文章并没有具体讲解Docker的一些底层原理,而是从实际使用的角度出发,用一个图像分类的案例讲述了如何拉取镜像并使用,如何上传自己的镜像供他人使用;

如果有一些问题或者想法的话欢迎私信探讨!

最后放最爱的小企鹅!

img
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值