资讯专栏INFORMATION COLUMN

Docker入门-镜像使用篇(2)

nodejh / 3515人阅读

摘要:由于镜像是多层存储结构,并且可以继承复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名标签均为的镜像。

列出镜像

列出已经下载的镜像,使用docker image ls进行查看 如下图

[root@host ~]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              18.04               d131e0fa2585        2 weeks ago         102MB
hello-world         latest              fce289e99eb9        4 months ago        1.84kB

列表包含了 仓库名标签镜像 ID创建时间 和 所占用的空间

镜像体积

docker image ls 列表中的镜像体积总和并非是所有镜像实际硬盘消耗。由于 Docker 镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。由于 Docker 使用 Union FS,相同的层只需要保存一份即可,因此实际镜像硬盘占用空间很可能要比这个列表镜像大小的总和要小的多。

[root@host ~]#  docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              2                   2                   101.8MB             0B (0%)
Containers          4                   1                   0B                  0B
Local Volumes       0                   0                   0B                  0B
Build Cache         0                   0                   0B                  0B
虚悬镜像

随着官方镜像维护,发布了新版本后,重新 docker pull xxx 时,xxx 这个镜像名被转移到了新下载的镜像身上,而旧的镜像上的这个名称则被取消,从而成为了 。除了 docker pull 可能导致这种情况,docker build 也同样可以导致这种现象。由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为 的镜像。这类无标签镜像也被称为 虚悬镜像(dangling image) ,可以用下面的命令专门显示这类镜像:

docker image ls -f dangling=true 显示虚悬镜像

docker image prune 删除虚悬镜像

中间层镜像

docker image ls -a docker image ls只能显示顶层的镜像 显示所有的是后边加参数-a

罗列部分镜像

docker image ls ubuntu => 根据仓库名ubuntu列出镜像

docker image ls ubuntu:18.04 指定仓库名和标签

docker image ls -f since=mongo:3.2 -f filter 过滤器来筛选查找

特定格式来显示

docker image ls会输出一个完成的表格,但是有时候没必要显示这么多,可能只需要镜像的ID就够用了,这时候使用 -p 参数

[root@host ~]# docker image ls -q
d131e0fa2585
fce289e99eb9

--filter 配合 -q 产生出指定范围的 ID 列表,然后送给另一个 docker 命令作为参数,从而针对这组实体成批的进行某种操作的做法在 Docker 命令行使用过程中非常常见,不仅仅是镜像,将来我们会在各个命令中看到这类搭配以完成很强大的功能。因此每次在文档看到过滤器后,可以多注意一下它们的用法。

另外一些时候,我们可能只是对表格的结构不满意,希望自己组织列;或者不希望有标题,这样方便其它程序解析结果等,这时候就需要GO模板语法

[root@host ~]# docker image ls --format "{{.ID}}: {{.Repository}}"
d131e0fa2585: ubuntu
fce289e99eb9: hello-world

表格 展示都可以自定义的通过模板{{}}来处理 类似vue中的模板语法

[root@host ~]# docker image ls --format "table {{.ID}}	{{.Repository}}	{{.Tag}}"
IMAGE ID            REPOSITORY          TAG
d131e0fa2585        ubuntu              18.04
fce289e99eb9        hello-world         latest
删除镜像

如果要删除本地镜像可以使用docker image rm命令:

docker image rm [选项] <镜像> [<镜像2> ...]
用镜像名、ID、摘要来删除镜像

<镜像>可以是 镜像的短 ID、镜像长ID镜像摘要或者镜像名字

[root@host ~]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              18.04               d131e0fa2585        2 weeks ago         102MB


docker image rm d13 

可以用镜像的完整 ID,来删除镜像。更多的时候是用 短 ID 来删除镜像。docker image ls 默认列出的就已经是短 ID 了,一般取前3个字符以上,只要可以区分于别的镜像就可。

当然,更精确的是使用 镜像摘要 删除镜像。
docker image ls --digests查看摘要
docker image rm [摘要的值]

使用 docker image ls 命令来配合

可以使用 docker image ls -q 来配合使用 docker image rm,这样可以成批的删除希望删除的镜像。我们在“镜像列表”章节介绍过很多过滤镜像列表的方式都可以拿过来使用。

删除所有在 mongo:3.4 之前的镜像:

docker image rm $(docker image ls -q -f before=mongo:3.4)

删除所有仓库名为 redis 的镜像

docker image rm $(docker image ls -q redis)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27840.html

相关文章

  • Docker入门-镜像使用2

    摘要:由于镜像是多层存储结构,并且可以继承复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名标签均为的镜像。 列出镜像 列出已经下载的镜像,使用docker image ls进行查看 如下图 [root@host ~]# docker image ls REPOSITORY TAG ...

    dunizb 评论0 收藏0
  • 01-Docker新手入门初见

    摘要:了解开源的容器平台用于分享管理容器的平台使用客户端服务器架构模式。守护进程会处理复杂繁重的任务,例如建立运行发布你的容器。客户端和守护进程之间通过或者进行通信。 Step1:了解Docker 开源的容器平台:Golang https://github.com/docker/dockerDocker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平台 -- D...

    oujie 评论0 收藏0
  • Docker入门-镜像使用

    摘要:获取镜像从中获取镜像命令为选项地址端口号仓库名标签比如镜像是由多层存储所构成。并且下载结束后,给出该镜像完整的的摘要,以确保下载一致性。运行拥有镜像后,可以以此镜像为基础启动一个容器。 使用镜像 从仓库获取镜像; 管理本地主机上的镜像; 镜像实现的基本原理。 获取镜像 从DockerHub中获取镜像 命令为docker pull docker pull [选项] [Docker R...

    rubyshen 评论0 收藏0
  • Docker入门-镜像使用

    摘要:获取镜像从中获取镜像命令为选项地址端口号仓库名标签比如镜像是由多层存储所构成。并且下载结束后,给出该镜像完整的的摘要,以确保下载一致性。运行拥有镜像后,可以以此镜像为基础启动一个容器。 使用镜像 从仓库获取镜像; 管理本地主机上的镜像; 镜像实现的基本原理。 获取镜像 从DockerHub中获取镜像 命令为docker pull docker pull [选项] [Docker R...

    JasonZhang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<