介绍

作为一名系统管理员,检查容器镜像是了解其组成、内容和可信度的基本技能。在本次挑战中,你将学习如何使用 podman 命令行工具获取有关容器镜像的详细底层信息。这是有效且安全地管理容器化环境的关键能力。

这是一个「挑战」项目,它与「引导实验」的不同之处在于,你需要尝试独立完成挑战任务,而不是按照实验步骤进行学习。挑战通常具有一定的难度。如果你觉得困难,可以与 Labby 讨论或查看解决方案。历史数据显示,这是一个 初学者 级别的挑战,通过率为 100%。它在学习者中获得了 100% 的好评率。

检查容器镜像

在本次挑战中,你将学习如何使用 podman 命令行工具检查容器镜像。

任务

你的目标是检查 nginx:latest 容器镜像并提取特定的信息。

  • nginx:latest 镜像执行 podman image inspect 命令,以显示其详细的元数据。
  • 从命令输出中识别镜像的架构 Architecture 和操作系统 Os
  • 查找组成镜像根文件系统的分层 Layers 列表。
  • 找到 RepoDigests 以查看镜像唯一的、可验证的标识符。

要求

  • 所有任务必须使用 podman 命令行工具执行。
  • 用于检查的目标容器镜像是 nginx:latest

示例

该命令会产生大量的 JSON 输出。以下是你可以预期的结构的一个简化和缩写示例。

[
    {
        "Id": "sha256:f655a1ae999b8525e33a6800a833c84835e4533b4a1393df1066a935e3b390ac",
        "RepoTags": [
            "nginx:latest"
        ],
        "RepoDigests": [
            "nginx@sha256:2ab488493232f254773734a0f41a32b6e3999593338eda235760343c6138810c"
        ],
        "Parent": "",
        "Comment": "built by buildkit",
        "Created": "2024-04-02T13:58:45.99493299Z",
        "Config": {
            ...
        },
        "Architecture": "amd64",
        "Os": "linux",
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:b41b647f50733393372724b2b96de3e5a50d745a61a338d3f51125596d05e489",
                "sha256:9e2f269c703a19a795f4431d24499a0918c8b501d21039a4861989a43ac1db71",
                "sha256:e25333e2432d31b420c3156b7448ff29113d11b65df089b4323f8d822551096a"
            ]
        }
    }
]

提示

  • podman image inspect 命令会产生大量的 JSON 输出。你可能需要在终端中滚动查看以找到所需的信息。
  • 输出是一个包含单个对象的 JSON 数组,因为你正在检查一个镜像。
  • 在 JSON 输出中寻找特定的键,如 ArchitectureOsRootFSRepoDigests
✨ 查看解决方案并练习

总结

在本次挑战中,你学习了如何使用 podman image inspect 深入了解容器镜像的配置和组成。你练习了定位关键信息,如镜像元数据、分层摘要和仓库摘要。这项技能对于故障排除、安全审计以及确保你使用的是正确且未经篡改的容器镜像至关重要。