zl程序教程

您现在的位置是:首页 >  工具

当前栏目

【Docker】:镜像文件操作

Docker 操作 镜像文件
2023-09-11 14:21:08 时间

笔者因为在工作当中需要使用Docker来将机器学习和深度学习的算法部署到云端,因此开始Docker的学习。机器学习当中常常使用Docker来进行环境的部署,而深度学习则可以采用NVdocker,都是很不错的选择。

一.拉取镜像到本地

一般情况下我们都在docker.hub这个网站下拉取(pull)镜像(image)到本地(local)上进行运行。这个网站相当于是docker的一个中央仓库,储存了docker当中的各种镜像文件,我们都可以从这里进行下载。打开这个网站,如下所示:

 

备注:什么是镜像文件?

回答:一种已经配置好的某种软件环境,我们下载下来就可以直接使用这种环境,而无需自己再次进行配置,众所周知,配置环境对程序员来说是一种很烦心的事情。比如mysql的环境,tomcat的环境,等等等等。

问题2:什么是容器?

回答:已经正在运行的镜像文件就叫做容器,没运行的镜像就还叫做镜像。

 

 好了,然后我们往下拉这个界面,点击see all official images,然后搜索tomcat,这里就中央仓库当中的所有镜像文件了,搜索过后的结果如下图所示:

 

 在这个图的右下角出现了docker在linux下安装的命令,因此我们复制它,在前面加上sudo命令利用管理员权限在linux下运行,笔者因为在海外,这里是没有墙的,因此可以快速下载,不需要国内的各种网站来下载,代码如下:

sudo docker pull tomcat

运行命令之后linux系统如下所示:

 

 然后查看当前已经下载的镜像:

sudo docker images

发现tomcat已经在其中了,如下所示:

 

 然后我们删除其中的image,“hello-world”,使用命令:

sudo docker rmi -f bf

rmi:表示删除的意思

-f:强制删除,如果不能删除再加上这个参数

bf:仔细看上图可以发现hello world 的image id 为:bf756f....,因此加上这个表示我们要删除的是哪一个image,可以简写,假设没有重复的话

 

删除之后重新查看当前的images如下:

 

 发现果然helloworld没了。

 

二.将已经拉取到本地的image,进行加载和运行

我们可以使用以下命令对image进行导出,导出之后才可以进行加载:

sudo docker save -o 导出的路径 镜像的ID

我们现在来加载刚才的这个tomcat环境:

sudo docker save -o ./tomcat f7

删除掉刚才拉pull进来的tomcat的image,只剩下我们导出(derive)的image:

sudo docker rmi -f f7

将已经导出的image加载进来:

sudo docker load -i tomcat

 

现在我们肯定没有之前pull下来的image文件了,因此如果出现了相同的tomcat 的image文件说明肯定是我们导出来再加载进来的而不是之前pull下来的那个image文件,因此我们输入命令查看当前的images有哪些:

sudo docker images

如下图所示:

 

 最后发现我们的tomcat的环境的名称为None,为了后续我们方便使用,因此使用tag关键字对tomcat的none进行重新命名为tomcat,同时其tag命名为8.5,表示版本为8.5,代码如下:

sudo docker tag f7 tomcat:8.5

这就是有关镜像文件image的所有操作啦!