在运维工作中,如何查看docker镜像?
在运维工作中,查看 Docker 镜像的操作非常基础且高频。以下是常用的查看方法和场景,附带示例和技巧:
一、查看本地已下载的镜像
1. 查看所有镜像(最常用)
docker images
# 或简写:docker image ls
输出示例:
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest 43c4264eed91 2 weeks ago 5.33MB
jiahui/k8sdemo v2 7a2f3c5d8e9f 1 day ago 12.5MB
nginx 1.23 6d83c5d8e9f0 3 days ago 141MB
- REPOSITORY:镜像名称(类似“软件名”)
- TAG:镜像标签(类似“版本号”)
- IMAGE ID:镜像唯一ID(前3-4位可作为简写)
- CREATED:镜像创建时间
- SIZE:镜像大小
2. 过滤镜像(按名称、标签、ID)
# 按名称过滤(如查找包含"alpine"的镜像)
docker images | grep alpine
# 按标签过滤(如查找标签为"latest"的镜像)
docker images --filter=reference="*:latest"
# 按镜像ID前缀过滤(如查找ID以"7a2f"开头的镜像)
docker images | grep '^7a2f'
3. 查看镜像详细信息(JSON格式)
docker inspect alpine:latest
输出包含镜像的完整配置(如环境变量、挂载点、创建历史等),适合深入排查问题。
二、查看镜像的分层结构(重要!)
每个 Docker 镜像由多个“层”组成,查看分层有助于优化镜像大小:
docker history alpine:latest
输出示例:
IMAGE CREATED CREATED BY SIZE COMMENT
43c4264eed91 2 weeks ago /bin/sh -c #(nop) CMD ["/bin/sh"] 0B
<missing> 2 weeks ago /bin/sh -c #(nop) ADD file:6a428f95... 5.33MB
- 每层的 SIZE:显示该层的大小,帮助定位哪些操作导致镜像膨胀。
三、查看镜像的依赖关系
如果需要了解镜像之间的继承关系(基于哪个基础镜像构建):
docker image inspect --format='{{.Parent}}' alpine:latest
- 输出为空表示该镜像没有父镜像(如
scratch
镜像) - 输出为另一个镜像 ID,表示基于该镜像构建
四、查看远程仓库的镜像(未下载到本地)
1. 搜索 Docker Hub 上的镜像
docker search nginx
输出示例:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 18.2K [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker... 2.1K [OK]
- NAME:镜像完整名称(如
jwilder/nginx-proxy
) - STARS:收藏数(热度指标)
- OFFICIAL:是否为官方镜像
2. 查看私有仓库的镜像(需先登录)
如果使用私有 Docker Registry(如 Harbor、阿里云镜像仓库):
# 先登录私有仓库
docker login my-registry.example.com
# 列出仓库中的镜像(具体命令取决于仓库API)
curl -u username:password https://my-registry.example.com/v2/_catalog
五、进阶技巧
1. 查看镜像占用的磁盘空间
docker system df
输出示例:
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 3 2 158.8MB 143.5MB (90%)
Containers 2 1 2.24kB 0B (0%)
Local Volumes 1 0 0B 0B
Build Cache 0 0 0B 0B
帮助清理无用镜像,释放磁盘空间。
2. 查看镜像的构建历史(构建步骤)
docker history --no-trunc alpine:latest | awk '{print $1 "\t" $2 "\t" $NF}'
输出每个构建步骤的完整命令,适合排查镜像构建问题。
六、总结
场景 | 命令 | 说明 |
---|---|---|
查看所有本地镜像 | docker images |
最常用,显示名称、标签、大小 |
查看镜像详细信息 | docker inspect 镜像名 |
JSON格式,包含所有配置 |
查看镜像分层结构 | docker history 镜像名 |
优化镜像大小必备 |
搜索远程镜像 | docker search 关键词 |
查找 Docker Hub 上的镜像 |
查看磁盘占用 | docker system df |
清理空间前必看 |
掌握这些命令后,你可以轻松管理 Docker 镜像,排查构建问题,优化镜像体积,是运维工作的基础技能。