【Docker学习总结】8.Docker-查看和删除镜像

在开始之前,我们先回顾一下Docker镜像的相关基础知识:

Docker Image镜像是一种使用“联合加载”技术实现的、“层叠”的只读文件系统,它是容器构建的基石:

由于不同版本中iamge存放的位置会有所偏差,首先查看一下docker版本:

使用ls命令,查看一下在var/lib/docker文件夹下有什么文件(这里使用的是root账户,非root账户需使用sudo权限):

我们的镜像文件存储在“image”文件夹下,我们打开该文件夹:

一、列出镜像

(1)指令介绍
列出所有docker中已有的镜像指令:

docker iamges [OPTIONS] [REPOSITORY]

其中[OPTIONS]为相关操作选项,一种有4种:


-a --all=false  显示所有镜像,默认不显示中间层的镜像。当我们使用“-a”指令的时候,会将中间层镜像展示出来,这些镜像是没有REPOSITORY与TAG的。


-f --filter=[]  显示镜像时的过滤条件

在docker images后添加镜像名称即可查询相关镜像的信息(非模糊查询):


--no-trunc=false 是指定不使用“截断”的形式来显示数据(默认情况下,使用image命令查到镜像的唯一ID是会被截断的)


-q --quiet=false 只显示镜像的唯一ID

(2)使用指令
下面我们使用images命令查看我们在docker中安装了哪些镜像:

可以看到,当前虚拟机中的docker安装了3个镜像,列头中的REPOSITORY、TAG、IMAGE ID、CREATED以及SIZE分别代表了“镜像所属的仓库名”、“镜像的标签名”、“镜像的唯一ID”、“镜像建立的时间”以及“镜像建立的大小”。值得注意的是,IAMGE ID为镜像的唯一ID,但此处是被截断的,完整的ID位于前面我们提到的/var/lib/docker/image/overlay2/imagedb/content/sha256下的镜像文件名.

下面我们来详细讨论一下REPOSITORY与TAG。

①REPOSITORY 仓库
REPOSITORY是一系列镜像的集合。一个仓库包含的是一系列关联的镜像,例如centos,它就是一个大的仓库,下面的不同镜像对应的操作系统的不同版本。

这里和我们之前讲到的docker组件中的仓库(REGIDTRY)有很大区别。我们之前讲到的仓库REGIDTRY提供的是docker镜像的存储服务。它们之间的关系其实就是,REGIDTRY仓库包含了很多REPOSITORY仓库,而在REPOSITORY的仓库中,包含的是一个一个独立的镜像。

②TAG 镜像标签
在仓库中,不同的镜像是以标签的形式来区分的。一个REPOSITORY仓库名+TAG标签名,就构成了一个完整的镜像名,如:
centos:7.02、ubuntu:14.04、debian:latest

这个镜像名就会对应一个镜像的ID。
我们之前在运行镜像时,通常只是指定了centos,并没有指定后面的TAG标签名,在这种情况下,docker会默认使用“latest”标签所对应的镜像。
 

二、删除镜像

docker中删除镜像使用rmi命令:

docker rmi [OPTIONS] IMAGE[IMAGE...]

其中[OPTIONS]为相关操作选项,操作有:
-f --force=false 强制删除镜像(无需询问)
--no-prune=false 保留被删除镜像中未打标签的父镜像

●删除单个镜像

当我们删除单个镜像时,可以在rmi后跟镜像的【REPOSITORY仓库名+TAG标签名】,如:

docker rmi centos:latest

●删除相同iamgeID的多TAG镜像

如果我们需要删除相同iamgeID,但TAG的不同的多个镜像,只需在rmi后直接跟这些镜像的imageID即可:

docker rmi 75835a67d134

●删除多个完全不同的镜像

我们可以在rmi后面列出需要删除的镜像的【REPOSITORY仓库名+TAG标签名】或imageID,以空格连接:

docker rmi centos:7.02 ubuntu:14.04
docker rmi 75835a67d134 4ad67hsdk86s

●删除批量镜像

rmi命令并没有删除批量镜像的命令,但是我们可以在“$()”包裹查询表达式,通过表达式的结果来批量删除镜像。
这里我们需要利用刚才使用的“通过镜像名搜索相关的镜像”(docker images 镜像名)指令来删除相关信息:
docker rmi $(docker images -q centos)
使用“-q”意味着只返回镜像的ID,所以上面的指令会删除所有仓库名为“centos”的镜像。
 

猜你喜欢

转载自blog.csdn.net/FullStackDeveloper0/article/details/87935830
今日推荐