Docker入门——实战图像分类

news2025/1/16 0:22:59

一、背景

思考:

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/885356.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

揭秘热门工作秘籍:ChatGPT大显身手!轻松提升工作效率的高效Prompt技巧曝光!

目录 01 背景 福利:文末有chat-gpt纯分享,无魔法,无限制 02 AI 可以帮助程序员做什么? 2.1 技术知识总结 2.2 拆解任务 2.3 阅读代码/优化代码 2.4 代码生成 2.5 生成单测 2.6 更多 AI 应用/插件 AIPRM Voice Control for Ch…

改善神经网络——优化算法(mini-batch、动量梯度下降法、Adam优化算法)

改善神经网络——优化算法 梯度下降Mini-batch 梯度下降(Mini-batch Gradient Descent)指数加权平均包含动量的梯度下降RMSprop算法Adam算法 优化算法可以使神经网络运行的更快,机器学习的应用是一个高度依赖经验的过程,伴随着大量…

SUMO 充电站与电动车详解

官方文档参考&#xff1a;Electric 创建电动车 首先在rou.xml文件中定义一个电动车类型&#xff0c;例如&#xff1a; <vType id"EV" length"5.00" minGap"2.50" maxSpeed"70.00" color"white" accel"1.0" …

【边缘设备】yolov5训练与rknn模型导出并在RK3588部署~2.环境验证(亲测有效)

保姆级教程&#xff0c;看这一篇就够用了。 在翻阅了网络上很多资料后&#xff0c;发现很多版本的信息比匹配。 花了一周的时间配置环境&#xff0c;以及环境验证&#xff0c;然后写了这篇长文。 有过程&#xff0c;有代码&#xff0c;有经验&#xff0c;欢迎大家批评指正。 一…

Linux 操作文件的系统调用

一、系统调用 系统调用表现出来的形式和库函数看着是一样的&#xff0c;但是系统调用的实现是在内核中&#xff0c;一旦执行系统调用以后&#xff0c;会产生中断&#xff0c;陷入内核&#xff0c;内核去执行相应的代码。我们无法直接去执行内核的代码&#xff0c;系统调用执行…

烧烤炉跨境电商UL检测报告UL 2728A标准

烧烤炉是一种烧烤设备&#xff0c;可以用来做烤羊肉串、烤肉、烤蔬菜等烧烤食品。烧烤炉根据加热源的不同可以分为木炭烧烤炉、燃气烧烤炉和电热烧烤炉&#xff1b;根据烧烤形式的不同&#xff0c;可分为手动烧烤炉和自动烧烤炉&#xff1b;根据用途的不同&#xff0c;可分为家…

如何使用PE修改win10系统的开机密码

前言&#xff1a;忘记自已电脑密码的人真的是太可怜了&#xff0c;半年多的时间没在公司&#xff0c;公司电脑也有半年多没有碰过&#xff0c;导致再回公司上班电脑密码早就忘记了。平时各类电子设备&#xff0c;软件应用的密码都是设成一样的&#xff0c;公司电脑因为有保密机…

ACM模式专业集训

在笔试的时候&#xff0c;大部分都是ACM模式&#xff0c;这让我们习惯于leetcode刷题确实输入输出很难下手&#xff0c;有的时候&#xff0c;明明题可以做出来&#xff0c;但是就是因为输入输出比较欠缺&#xff0c;因此无缘笔试&#xff0c;所以我们在平常的时候应该多去用ACM…

Scratch 之 翻页器制作

众所周知&#xff0c;在原版scratch上有一块480360大小的屏幕。但是我们如果在scratch编译器上编一些文字比较多的文章时&#xff0c;就会发现&#xff1a;字太多舞台区大小不够用怎么办&#xff1f;别着急&#xff0c;看我怎么解决。 标题大家都看到了吧&#xff0c;这个作品解…

pe文件的Import table导入表的手工修复

一、实验目的&#xff1a; 实验提供了一个不能正常运行的程序&#xff0c;如果在正常运行的情况下&#xff0c;程序的功能是弹出一个messagebox&#xff0c;然后正常退出。要做的&#xff0c;是通过排查错误&#xff0c;找到问题所在&#xff0c;修改程序&#xff0c;使其正常运…

猿辅导发布素质教育品牌,助力孩子学习底层能力培养

近年来&#xff0c;我国教育改革逐步深化&#xff0c;发展素质教育已成社会共识。2022年教育部发布新课标&#xff0c;根据学生的核心素养要求&#xff0c;确定了各门课程具体目标&#xff0c;优化了课程内容结构。其中&#xff0c;跨学科学习、探究式学习成为了新的学习方式。…

bigemap如何添加在线高清卫星图?

一、先那安装bigemap 软件 BIGEMAP电脑全能版 下载连接&#xff1a;http://www.bigemap.com/reader/download/detail201802015.html 二、鼠标放在左上角选择地图源这里&#xff0c;点击第一个加号按钮 选择从配置文件添加在线地图 吧地图配置文件选择导入添加&#xff0c;勾选…

【取证】2022美亚杯资格赛个人赛

【取证】2022美亚杯资格赛个人赛 加载检材创建案件个人赛部分&#xff08;共70题&#xff09;1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.6…

攻防演习常用威胁情报中心

攻防演习常用威胁情报中心 微步在线&#xff1a;https://x.threatbook.com/绿盟威胁分析中心&#xff1a;https://poma.nsfocus.com/奇安信威胁情报中心&#xff1a;https://ti.qianxin.com/360安全大脑&#xff1a;https://sc.360.net/360沙箱云地址“”https://ata.360.net/天…

使用pysnmp报错lambda错误

pip install pyasn10.4.8 pysnmp4.4.12 python - Takes exactly 3 arguments (4 given) - Stack Overflow

CorelDRAW2023(简称CDR23)官方最新中文版下载教程

CorelDRAW&#xff08;简称CDR&#xff09;是一款专业的图形设计软件。该软件是加拿大Corel公司开发的一款功能强大的专业平面设计软件、矢量设计软件、矢量绘图软件。这款矢量图形制作工具软件广泛应用于商标设计、标志制作、封面设计、CIS设计、产品包装造型设计、模型绘制、…

树的子结构

声明 该系列文章仅仅展示个人的解题思路和分析过程&#xff0c;并非一定是优质题解&#xff0c;重要的是通过分析和解决问题能让我们逐渐熟练和成长&#xff0c;从新手到大佬离不开一个磨练的过程&#xff0c;加油&#xff01; 原题链接 树的子结构https://leetcode.cn/leet…

每天一道leetcode:剑指 Offer 36. 二叉搜索树与双向链表(中等深度优先遍历递归)

今日份题目&#xff1a; 输入一棵二叉搜索树&#xff0c;将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点&#xff0c;只能调整树中节点指针的指向。 示例 我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于…

ps怎么压缩图片大小200k?图片压缩技巧来啦

ps是我们常用的一款图像处理软件&#xff0c;有很多功能&#xff0c;可以帮助我们有效地进行图片编辑和创造工作&#xff0c;当然用它也可以压缩图片的大小&#xff0c;如果你还不知道怎么用ps压缩图片大小&#xff0c;不妨继续看下去吧。 方法一&#xff1a;调整图片品质 1、…

用AI攻克“智能文字识别创新赛题”,这场大学生竞赛掀起了什么风潮?

文章目录 一、前言1.1 大赛介绍1.2 项目背景 二、基于智能文字场景个人财务管理创新应用2.1 作品方向2.2 票据识别模型2.2.1 文本卷积神经网络TextCNN2.2.2 Bert 预训练微调2.2.3 模型对比2.2.4 效果展示 2.3 票据文字识别接口 三、未来展望 一、前言 1.1 大赛介绍 中国大学生…