github编辑

列出镜像

基本用法

查看本地已下载的镜像:

$ docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
redis        latest    5f515359c7f8   5 days ago     183MB
nginx        latest    05a60462f8ba   5 days ago     181MB
ubuntu       24.04     329ed837d508   3 days ago     78MB
ubuntu       noble     329ed837d508   3 days ago     78MB

💡 docker imagesdocker image ls 的简写,两者等效。


输出字段说明

字段
说明

REPOSITORY

仓库名

TAG

标签(版本)

IMAGE ID

镜像唯一标识(短 ID,前 12 位)

CREATED

创建时间

SIZE

本地占用空间

同一镜像多个标签

注意上面的 ubuntu:24.04ubuntu:noble 拥有相同的 IMAGE ID——它们是同一个镜像的不同标签,只占用一份存储空间。


理解镜像大小

本地大小 vs Hub 显示大小

位置
显示大小
说明

Docker Hub

29MB

压缩后的网络传输大小

docker image ls

78MB

本地解压后的实际大小

实际磁盘占用

由于镜像是分层存储,不同镜像可能共享相同的层:

因此,docker image ls 中各镜像大小之和 > 实际磁盘占用。

查看实际空间占用


过滤镜像

按仓库名过滤

按仓库名和标签过滤

使用过滤器 --filter

过滤条件
说明
示例

dangling=true

虚悬镜像

-f dangling=true

before=镜像

在某镜像之前创建

-f before=nginx:latest

since=镜像

在某镜像之后创建

-f since=nginx:latest

label=key=value

按 LABEL 过滤

-f label=version=1.0

reference=pattern

按名称模式

-f reference='*:latest'


虚悬镜像(Dangling Images)

什么是虚悬镜像

仓库名和标签都显示为 <none> 的镜像:

产生原因

  1. 镜像重新构建:新镜像使用了旧镜像的标签,旧镜像标签被移除

  2. docker pull 更新:拉取更新版本时,旧版本失去标签

处理虚悬镜像


中间层镜像

查看所有镜像(包含中间层)

会显示很多无标签镜像——这些是构建过程中产生的中间层,被其他镜像依赖。

⚠️ 不要删除中间层镜像。它们是其他镜像的依赖,删除会导致上层镜像无法使用。删除顶层镜像时会自动清理不再需要的中间层。


格式化输出

只输出 ID

常用于配合其他命令:

显示完整 ID

显示摘要

自定义格式

使用 Go 模板语法自定义输出:

可用模板字段

字段
说明

.ID

镜像 ID

.Repository

仓库名

.Tag

标签

.Digest

摘要

.CreatedSince

创建后经过的时间

.CreatedAt

创建时间

.Size

大小


常用命令组合


本章小结

操作
命令

列出所有镜像

docker images

按仓库名过滤

docker images nginx

列出虚悬镜像

docker images -f dangling=true

只输出 ID

docker images -q

显示摘要

docker images --digests

自定义格式

docker images --format "..."

查看空间占用

docker system df

延伸阅读

最后更新于