作者信息:https://home.cnblogs.com/u/huangjiabobk

在运维工作中,如何查看docker镜像?

在运维工作中,查看 Docker 镜像是管理容器化应用的基础操作之一。Docker 提供了多种命令和工具来查看镜像的详细信息,包括镜像列表、镜像大小、创建时间、镜像的分层结构等。以下是详细的操作方法和常用命令:

1. 查看本地镜像列表
(1)docker images

这是查看本地镜像的基本命令,用于列出所有已下载的镜像。

docker images
  • 输出示例

    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    ubuntu              20.04               1d622ef86b88        3 weeks ago         63.2MB
    nginx               latest              7f19c56d5b5b        2 weeks ago         133MB
    hello-world         latest              feb5d9fea6a5        5 months ago        1.84kB
    
  • 字段说明

    • REPOSITORY:镜像的仓库名称。
    • TAG:镜像的标签(版本)。
    • IMAGE ID:镜像的唯一标识符。
    • CREATED:镜像的创建时间。
    • SIZE:镜像的大小。
2. 查看镜像的详细信息
(1)docker inspect

该命令用于查看镜像的详细配置信息,包括镜像的分层结构、环境变量、入口点等。

docker inspect <image_name_or_id>
  • 示例

    docker inspect ubuntu:20.04
    
  • 输出示例(部分):

    [
        {
            "Id": "sha256:1d622ef86b884d85a3286e12506a8838780a2b5b",
            "RepoTags": [
                "ubuntu:20.04"
            ],
            "RepoDigests": [],
            "Parent": "",
            "Comment": "",
            "Created": "2023-01-15T12:34:56.789Z",
            "Container": "abc123def456",
            "ContainerConfig": {
                "Hostname": "abc123def456",
                "Domainname": "",
                "User": "",
                "AttachStdin": false,
                "AttachStdout": false,
                "AttachStderr": false,
                "Tty": false,
                "OpenStdin": false,
                "StdinOnce": false,
                "Env": [
                    "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
                ],
                "Cmd": [
                    "/bin/sh",
                    "-c",
                    "#(nop) CMD [\"/bin/bash\"]"
                ],
                "Image": "sha256:1d622ef86b884d85a3286e12506a8838780a2b5b",
                "Volumes": null,
                "WorkingDir": "",
                "Entrypoint": null,
                "OnBuild": null,
                "Labels": {}
            },
            "DockerVersion": "20.10.7",
            "Author": "",
            "Config": {
                "Hostname": "",
                "Domainname": "",
                "User": "",
                "AttachStdin": false,
                "AttachStdout": false,
                "AttachStderr": false,
                "Tty": false,
                "OpenStdin": false,
                "StdinOnce": false,
                "Env": [
                    "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
                ],
                "Cmd": [
                    "/bin/bash"
                ],
                "Image": "sha256:1d622ef86b884d85a3286e12506a8838780a2b5b",
                "Volumes": null,
                "WorkingDir": "",
                "Entrypoint": null,
                "OnBuild": null,
                "Labels": {}
            },
            "Architecture": "amd64",
            "Os": "linux",
            "Size": 63200000,
            "VirtualSize": 63200000,
            "GraphDriver": {
                "Data": {
                    "MergedDir": "/var/lib/docker/overlay2/merged",
                    "UpperDir": "/var/lib/docker/overlay2/upper",
                    "WorkDir": "/var/lib/docker/overlay2/work"
                },
                "Name": "overlay2"
            },
            "RootFS": {
                "Type": "layers",
                "Layers": [
                    "sha256:1d622ef86b884d85a3286e12506a8838780a2b5b"
                ]
            },
            "Metadata": {
                "LastTagTime": "2023-01-15T12:34:56.789Z"
            }
        }
    ]
    
  • 说明

    • docker inspect 输出的是 JSON 格式,包含了镜像的详细信息。

    • 可以通过管道(|)和工具(如 jq)来解析和提取特定信息。例如:

      docker inspect ubuntu:20.04 | jq '.[0].Config.Cmd'
      
3. 查看镜像的历史记录
(1)docker history

该命令用于查看镜像的分层历史记录,包括每一层的创建命令和大小。

docker history <image_name_or_id>
  • 示例

    docker history ubuntu:20.04
    
  • 输出示例

    IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
    1d622ef86b88        3 weeks ago         /bin/sh -c #(nop) CMD ["/bin/bash"]             0B                  buildkit
    <missing>           3 weeks ago         /bin/sh -c #(nop) ADD file:... in /             63.2MB              buildkit
    
  • 说明

    • 每一行代表镜像的一个分层。
    • CREATED BY 列显示了创建该层的 Dockerfile 指令。
    • SIZE 列显示了该层的大小。
4. 查看镜像的大小和占用空间
(1)docker system df

该命令用于查看 Docker 系统的总体资源占用情况,包括镜像、容器和卷的大小。

docker system df
  • 输出示例

    TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
    Images              3                   2                   200MB               63.2MB (31%)
    Containers          5                   2                   120MB               80MB (66%)
    Local Volumes       2                   2                   100MB               0B (0%)
    Build Cache         0                   0                   0B                  0B
    
  • 说明

    • TOTAL:总数量。
    • ACTIVE:当前正在使用的数量。
    • SIZE:总占用空间。
    • RECLAIMABLE:可以回收的空间。
5. 查看镜像的标签和版本
(1)docker images

通过 docker images 命令可以查看镜像的标签(TAG)和版本信息。

docker images
  • 示例

    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    ubuntu              20.04               1d622ef86b88        3 weeks ago         63.2MB
    ubuntu              latest              1d622ef86b88        3 weeks ago         63.2MB
    
  • 说明

    • TAG 列显示了镜像的版本或标签。
    • 同一个镜像可以有多个标签(如 20.04latest)。
6. 查看镜像的存储驱动信息
(1)docker inspect
docker inspect <image_name_or_id> | jq '.[0].RootFS.L

综上所述,通过 docker inspect 命令可以查看镜像的存储驱动信息,例如使用的存储驱动(如 overlay2)和分层结构。

posted @ 2025-02-17 17:34  黄嘉波  阅读(285)  评论(0)    收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波