在运维工作中,如何查看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 镜像,排查构建问题,优化镜像体积,是运维工作的基础技能。

posted @ 2025-07-29 15:45  天道酬勤zjh  阅读(150)  评论(0)    收藏  举报