【Docker】:镜像文件操作
笔者因为在工作当中需要使用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的所有操作啦!