Podman 教程

Podman 查看容器详细元数据

在容器化部署的全流程中,从初始配置验证到运行状态监控,再到故障排查与问题定位,容器的“元数据”始终扮演着“容器身份档案”的关键角色。这些结构化的数据涵盖了容器的创建参数、资源限制、网络配置、存储挂载等核心信息,是运维人员全面掌控容器生命周期的重要依据。无论是新手验证容器配置是否符合预期,还是资深工程师调试复杂的容器运行异常,精准获取并解析容器元数据都是不可或缺的操作环节。

Podman 查看容器详细元数据的核心命令是 podman inspect,该命令会以 JSON 格式返回容器的完整配置、状态、挂载、网络等详细信息,是排查容器配置、调试运行状态的重要工具。

为什么需要查看容器元数据

查看容器元数据的核心价值在于“精准掌控容器状态、高效解决问题”,具体可从以下场景展开:

  • 验证配置有效性:容器创建时可能通过命令行或配置文件指定了端口映射、环境变量、挂载目录等参数,通过查看元数据可直观确认这些配置是否被正确应用,避免因参数遗漏或语法错误导致的部署问题。例如,确认端口映射是否生效、卷挂载路径是否正确关联等。

  • 排查运行故障:当容器出现启动失败、网络不通、存储读写异常等问题时,元数据是重要的排查线索。通过查看容器的状态信息(如启动命令、退出码)、网络配置(如IP地址、端口绑定)、挂载详情(如卷类型、权限设置),可快速定位故障根源,比如判断是否因端口占用导致启动失败,或因卷权限不足引发读写错误。

  • 梳理容器关联关系:在多容器协同的场景中,容器可能存在网络连接、依赖挂载等关联关系。元数据会清晰记录容器的网络模式、关联的网络接口、挂载的卷信息等,帮助运维人员梳理容器间的依赖链路,为架构优化或问题定位提供支撑。

  • 获取环境迁移依据:当需要将容器从一台主机迁移到另一台主机时,元数据中记录的完整配置(如镜像版本、启动参数、资源限制)可作为迁移的精准依据,确保迁移后的容器与原容器配置一致,保障服务连续性。

  • 进行资源审计与优化:元数据包含容器的资源配置(如CPU、内存限制)和实际资源使用情况,运维人员可通过这些数据进行资源审计,识别资源分配不合理的容器,进而调整配置实现资源优化,提高资源利用率。

基础语法

podman inspect [选项] {ARTIFACT|容器|镜像|POD|网络|卷} [...]

常用选项:

  • -f, --format    使用 Go 模板格式化输出(例如提取特定字段)

  • -t, --type   指定对象类型,可选值:container(容器,默认)、image(镜像)、volume(卷)、network(网络)等

  • --size    显示容器的磁盘大小信息(仅对容器有效)

点击查看 podman inspect 命令手册

  

常用使用场景示例

查看单个容器的元数据

使用不带任何选项参数的 podman inspect 命令将返回指定容器的所有元数据,包括容器 ID、状态、启动命令、环境变量、挂载卷、网络配置、资源限制等。例如:

# 查看名为 my-nginx 的容器的详细信息
C:\Users\Administrator> podman inspect my-nginx
[
     {
          "Id": "3b16d172fcd526b8a63e51a4676812fd35fc49861559402bee4ff12424c038ce",
          //...
          "Namespace": "",
          "IsInfra": false,
          "IsService": false,
          "KubeExitCodePropagation": "invalid",
          //...
     }
]

下面逐一对容器的元数据简单注释:

[
    {
        "Id": "3b16d172fcd526b8a63e51a4676812fd35fc49861559402bee4ff12424c038ce", // 容器唯一ID(UUID)
        "Created": "2025-11-13T15:52:41.869458215+08:00", // 容器创建时间(带时区)
        "Path": "/docker-entrypoint.sh", // 容器启动入口脚本路径
        "Args": [
            "nginx",
            "-g",
            "daemon off;"
        ], // 容器启动参数:运行nginx并关闭后台守护模式
        "State": { // 容器运行状态信息
            "OciVersion": "1.2.1", // 遵循的OCI规范版本
            "Status": "running", // 容器状态(running/stopped/paused等)
            "Running": true, // 是否正在运行(布尔值)
            "Paused": false, // 是否处于暂停状态
            "Restarting": false, // 是否正在重启
            "OOMKilled": false, // 是否因内存不足被系统终止
            "Dead": false, // 是否已停止且无法重启
            "Pid": 26502, // 容器内主进程在宿主机的PID
            "ConmonPid": 26500, // 容器管理工具conmon的宿主机PID
            "ExitCode": 0, // 容器退出码(0表示正常退出)
            "Error": "", // 容器运行错误信息(空表示无错误)
            "StartedAt": "2025-11-13T15:52:42.026552722+08:00", // 容器启动时间
            "FinishedAt": "0001-01-01T00:00:00Z", // 容器停止时间(未停止时为默认值)
            "CgroupPath": "/user.slice/user-1000.slice/user@1000.service/app.slice/3b16d172fcd526b8a63e51a4676812fd35fc49861559402bee4ff12424c038ce", // 容器的cgroup控制路径
            "CheckpointedAt": "0001-01-01T00:00:00Z", // 容器 checkpoint 时间(未执行则为默认值)
            "RestoredAt": "0001-01-01T00:00:00Z" // 容器从 checkpoint 恢复时间(未恢复则为默认值)
        },
        "Image": "d261fd19cb63238535ab80d4e1be1d9e7f6c8b5a28a820188968dd3e6f06072d", // 容器使用镜像的ID
        "ImageDigest": "sha256:1beed3ca46acebe9d3fb62e9067f03d05d5bfa97a00f30938a0a3580563272ad", // 镜像的摘要(唯一标识镜像版本)
        "ImageName": "docker.io/library/nginx:latest", // 镜像的完整名称(仓库+标签)
        "Rootfs": "", // 容器根文件系统路径(overlay驱动下可忽略)
        "Pod": "", // 所属Pod名称(独立容器为空)
        // 容器的DNS配置文件路径
        "ResolvConfPath": "/run/user/1000/containers/overlay-containers/3b16d172fcd526b8a63e51a4676812fd35fc49861559402bee4ff12424c038ce/userdata/resolv.conf", 
        // 容器的主机名配置文件路径
        "HostnamePath": "/run/user/1000/containers/overlay-containers/3b16d172fcd526b8a63e51a4676812fd35fc49861559402bee4ff12424c038ce/userdata/hostname", 
        // 容器的hosts文件路径
        "HostsPath": "/run/user/1000/containers/overlay-containers/3b16d172fcd526b8a63e51a4676812fd35fc49861559402bee4ff12424c038ce/userdata/hosts", 
        // 容器静态数据存储目录
        "StaticDir": "/home/user/.local/share/containers/storage/overlay-containers/3b16d172fcd526b8a63e51a4676812fd35fc49861559402bee4ff12424c038ce/userdata", 
        // OCI规范配置文件路径
        "OCIConfigPath": "/home/user/.local/share/containers/storage/overlay-containers/3b16d172fcd526b8a63e51a4676812fd35fc49861559402bee4ff12424c038ce/userdata/config.json", 
        "OCIRuntime": "crun", // 使用的OCI运行时(crun/runc等)
        "ConmonPidFile": "/run/user/1000/containers/overlay-containers/3b16d172fcd526b8a63e51a4676812fd35fc49861559402bee4ff12424c038ce/userdata/conmon.pid", // conmon进程PID文件路径
        "PidFile": "/run/user/1000/containers/overlay-containers/3b16d172fcd526b8a63e51a4676812fd35fc49861559402bee4ff12424c038ce/userdata/pidfile", // 容器主进程PID文件路径
        "Name": "my-nginx", // 容器名称(用户自定义)
        "RestartCount": 0, // 容器重启次数
        "Driver": "overlay", // 容器存储驱动(overlay/overlay2等)
        "MountLabel": "", // SELinux挂载标签(未启用则为空)
        "ProcessLabel": "", // 容器进程的SELinux标签(未启用则为空)
        "AppArmorProfile": "", // 应用的AppArmor安全配置文件(未启用则为空)
        "EffectiveCaps": [ // 容器实际生效的Linux权限能力
            "CAP_CHOWN", // 修改文件所有者
            "CAP_DAC_OVERRIDE", // 绕过文件访问权限检查
            "CAP_FOWNER", // 忽略文件所有者权限检查
            "CAP_FSETID", // 修改文件SETID位
            "CAP_KILL", // 发送终止信号给任意进程
            "CAP_NET_BIND_SERVICE", // 绑定特权端口(1-1023)
            "CAP_SETFCAP", // 设置文件权限能力
            "CAP_SETGID", // 修改进程组ID
            "CAP_SETPCAP", // 设置进程权限能力
            "CAP_SETUID", // 修改进程用户ID
            "CAP_SYS_CHROOT" // 使用chroot系统调用
        ],
        "BoundingCaps": [ // 容器权限能力边界(限制生效能力的范围)
            "CAP_CHOWN",
            "CAP_DAC_OVERRIDE",
            "CAP_FOWNER",
            "CAP_FSETID",
            "CAP_KILL",
            "CAP_NET_BIND_SERVICE",
            "CAP_SETFCAP",
            "CAP_SETGID",
            "CAP_SETPCAP",
            "CAP_SETUID",
            "CAP_SYS_CHROOT"
        ],
        "ExecIDs": [], // 容器内执行的exec命令ID列表(无则为空)
        "GraphDriver": { // 存储驱动详细信息
            "Name": "overlay", // 驱动名称
            "Data": {
                // 镜像层(只读)路径集合
                "LowerDir": "/home/user/.local/share/containers/storage/overlay/36333c84592c731fd5c616984670d6cae4feaf6e20af5ff112bef7586e4eee37/diff:/home/user/.local/share/containers/storage/overlay/a527a4b607a379d7e4539be671ca053f4d1dff2d04e5399b1f69ce13f4252b1d/diff:/home/user/.local/share/containers/storage/overlay/d52725a1d76178a05d024b45772c9874097c10f9f4ea32ac83341f27c823cf40/diff:/home/user/.local/share/containers/storage/overlay/b54819a4cde44dd96c9846c04cb22f926296bb3f643938f371654fdf029567cc/diff:/home/user/.local/share/containers/storage/overlay/0b9737d30a900f7a5ff9d8e54dd6e28ab3f05745614da0b80de701283fc42bb7/diff:/home/user/.local/share/containers/storage/overlay/40563e6a01a74e110bb85bdd2ac8a9e9f89f3d2c921786a495306be0bfdbf638/diff:/home/user/.local/share/containers/storage/overlay/36d06fe0cbc654e5f67d58c960ed33e53127e4a3288d8ce6f6a60a9c311794d4/diff",
                // 合并后的容器根文件系统路径(可读可写)
                "MergedDir": "/home/user/.local/share/containers/storage/overlay/987ef0e1c5b0b6dccda6f3cc41c748a59a5456f499b3846f2ded154b1af04e44/merged", 
                // 容器可写层路径(存储容器运行时修改的文件)
                "UpperDir": "/home/user/.local/share/containers/storage/overlay/987ef0e1c5b0b6dccda6f3cc41c748a59a5456f499b3846f2ded154b1af04e44/diff", 
                // 驱动工作目录
                "WorkDir": "/home/user/.local/share/containers/storage/overlay/987ef0e1c5b0b6dccda6f3cc41c748a59a5456f499b3846f2ded154b1af04e44/work"
            }
        },
        "Mounts": [], // 容器挂载的卷或目录列表(无额外挂载则为空)
        "Dependencies": [], // 容器依赖的其他对象(无则为空)
        "NetworkSettings": { // 容器网络配置信息
            "EndpointID": "", // 网络端点ID(桥接模式下可忽略)
            "Gateway": "10.88.0.1", // 容器网关IP(Podman默认桥接网络网关)
            "IPAddress": "10.88.0.4", // 容器内网IP地址
            "IPPrefixLen": 16, // IP地址子网掩码长度(16表示255.255.0.0)
            "IPv6Gateway": "", // IPv6网关(未启用则为空)
            "GlobalIPv6Address": "", // 全局IPv6地址(未启用则为空)
            "GlobalIPv6PrefixLen": 0, // IPv6子网掩码长度(未启用则为0)
            "MacAddress": "d6:64:77:60:c2:4e", // 容器网卡MAC地址
            "Bridge": "", // 关联的网桥名称(Podman默认桥接网络无需指定)
            "SandboxID": "", // 网络沙箱ID(独立容器为空)
            "HairpinMode": false, // 是否启用hairpin模式(允许容器访问自身暴露的端口)
            "LinkLocalIPv6Address": "", // 本地链路IPv6地址(未启用则为空)
            "LinkLocalIPv6PrefixLen": 0, // 本地链路IPv6子网长度(未启用则为0)
            "Ports": { // 端口映射配置
                "80/tcp": [ // 容器内暴露的80/tcp端口
                    {
                        "HostIp": "0.0.0.0", // 宿主机绑定IP(0.0.0.0表示所有网卡)
                        "HostPort": "9000" // 宿主机映射端口(外部通过宿主机9000端口访问容器80端口)
                    }
                ]
            },
            "SandboxKey": "/run/user/1000/netns/netns-db8571e7-696e-5007-b553-b789273d4d15", // 网络命名空间路径
            "Networks": { // 容器关联的网络详情
                "podman": { // 关联的网络名称(Podman默认网络)
                    "EndpointID": "",
                    "Gateway": "10.88.0.1",
                    "IPAddress": "10.88.0.4",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "d6:64:77:60:c2:4e",
                    "NetworkID": "2f259bab93aaaaa2542ba43ef33eb990d0999ee1b9924b557b7be53c0b7a1bb9", // 网络唯一ID
                    "DriverOpts": null, // 网络驱动选项(默认网络无特殊配置)
                    "IPAMConfig": null, // IP地址管理配置(默认网络使用自动分配)
                    "Links": null, // 关联的其他容器链接(无则为空)
                    "Aliases": [
                        "3b16d172fcd5" // 容器在网络中的别名(默认使用容器ID前12位)
                    ]
                }
            }
        },
        "Namespace": "", // 容器命名空间配置(默认使用Podman自动分配)
        "IsInfra": false, // 是否为Pod的基础设施容器(独立容器为false)
        "IsService": false, // 是否为服务容器(独立容器为false)
        "KubeExitCodePropagation": "invalid", // Kubernetes退出码传播配置(非K8s环境为invalid)
        "lockNumber": 9, // 容器锁编号(内部进程同步使用)
        "Config": { // 容器的配置信息
            "Hostname": "3b16d172fcd5", // 容器主机名
            "Domainname": "", // 容器域名(未设置)
            "User": "", // 容器内默认运行用户(未指定,使用镜像默认)
            "AttachStdin": false, // 是否附加标准输入
            "AttachStdout": false, // 是否附加标准输出
            "AttachStderr": false, // 是否附加标准错误输出
            "Tty": true, // 是否分配伪终端
            "OpenStdin": true, // 是否打开标准输入
            "StdinOnce": false, // 标准输入是否仅打开一次
            "Env": [ // 容器内环境变量列表
                "NJS_RELEASE=1~trixie",
                "TERM=xterm",
                "container=podman",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "PKG_RELEASE=1~trixie",
                "DYNPKG_RELEASE=1~trixie",
                "NGINX_VERSION=1.29.3", // Nginx版本
                "NJS_VERSION=0.9.4", // NJS模块版本
                "HOME=/root", // 家目录路径
                "HOSTNAME=3b16d172fcd5" // 主机名环境变量
            ],
            "Cmd": [ // 容器启动命令(覆盖镜像默认命令)
                "nginx",
                "-g",
                "daemon off;" // Nginx前台运行参数
            ],
            "Image": "docker.io/library/nginx:latest", // 容器基于的镜像
            "Volumes": null, // 声明的卷(未设置)
            "WorkingDir": "/", // 容器内工作目录
            "Entrypoint": [ // 容器入口点脚本
                "/docker-entrypoint.sh" // Nginx启动入口脚本
            ],
            "OnBuild": null, // 镜像的ONBUILD指令(未设置)
            "Labels": { // 容器标签
                "maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>" // 维护者信息
            },
            "Annotations": { // 容器注解
                "io.container.manager": "libpod", // 容器管理器(libpod)
                "org.opencontainers.image.stopSignal": "3", // 停止信号
                "org.systemd.property.KillSignal": "3", // systemd终止信号
                "org.systemd.property.TimeoutStopUSec": "uint64 10000000" // 停止超时时间(10秒)
            },
            "StopSignal": "SIGQUIT", // 容器停止信号
            "HealthcheckOnFailureAction": "none", // 健康检查失败时的动作(无)
            "HealthLogDestination": "local", // 健康日志存储位置(本地)
            "HealthcheckMaxLogCount": 5, // 健康日志最大保留数量
            "HealthcheckMaxLogSize": 500, // 健康日志单条最大大小
            "Umask": "0000", // 容器内文件创建权限掩码
            "Timeout": 0, // 命令执行超时时间(未设置)
            "StopTimeout": 10, // 容器停止超时时间(10秒)
            "Passwd": true, // 是否传递/etc/passwd文件
            "ExposedPorts": { // 镜像声明暴露的端口
                "80/tcp": {} // 暴露80/tcp端口
            }
        },
        "HostConfig": { // 主机对容器的配置(宿主机层面)
            "Binds": [], // 挂载的宿主机目录(未挂载)
            "CgroupManager": "cgroupfs", // cgroup管理器类型
            "CgroupMode": "private", // cgroup模式(私有)
            "ContainerIDFile": "", // 容器ID文件路径(未设置)
            "LogConfig": { // 日志配置
                "Type": "journald", // 日志驱动类型(journald)
                "Config": null, // 日志驱动配置(无)
                "Path": "", // 日志文件路径(未设置)
                "Tag": "", // 日志标签(未设置)
                "Size": "-1B" // 日志大小限制(无限制)
            },
            "NetworkMode": "bridge", // 网络模式(桥接模式)
            "PortBindings": { // 端口映射配置
                "80/tcp": [ // 容器内80/tcp端口映射
                    {
                        "HostIp": "0.0.0.0", // 宿主机绑定IP(所有网卡)
                        "HostPort": "9000" // 宿主机映射端口(9000)
                    }
                ]
            },
            "RestartPolicy": { // 重启策略
                "Name": "no", // 策略名称(不自动重启)
                "MaximumRetryCount": 0 // 最大重试次数(0次)
            },
            "AutoRemove": false, // 容器退出后是否自动删除(否)
            "AutoRemoveImage": false, // 容器删除后是否自动删除镜像(否)
            "Annotations": { // 主机配置注解(同容器注解)
                "io.container.manager": "libpod",
                "org.opencontainers.image.stopSignal": "3",
                "org.systemd.property.KillSignal": "3",
                "org.systemd.property.TimeoutStopUSec": "uint64 10000000"
            },
            "VolumeDriver": "", // 卷驱动(未设置)
            "VolumesFrom": null, // 从其他容器挂载卷(未设置)
            "CapAdd": [], // 添加的Linux capabilities(无)
            "CapDrop": [], // 移除的Linux capabilities(无)
            "Dns": [], // DNS服务器(未设置)
            "DnsOptions": [], // DNS选项(未设置)
            "DnsSearch": [], // DNS搜索域(未设置)
            "ExtraHosts": [], // 额外的主机名映射(未设置)
            "HostsFile": "none", // 宿主机hosts文件是否挂载(否)
            "GroupAdd": [], // 额外添加的用户组(无)
            "IpcMode": "shareable", // IPC命名空间模式(可共享)
            "Cgroup": "", // cgroup路径(未设置)
            "Cgroups": "default", // cgroup配置(默认)
            "Links": null, // 链接到其他容器(未设置)
            "OomScoreAdj": 200, // OOM分数调整值(200,较高优先级被OOM杀死)
            "PidMode": "private", // PID命名空间模式(私有)
            "Privileged": false, // 是否为特权容器(否)
            "PublishAllPorts": false, // 是否发布所有暴露的端口(否)
            "ReadonlyRootfs": false, // 根文件系统是否只读(否)
            "SecurityOpt": [], // 安全选项(无)
            "Tmpfs": {}, // tmpfs挂载配置(无)
            "UTSMode": "private", // UTS命名空间模式(私有)
            "UsernsMode": "", // 用户命名空间模式(未设置)
            "ShmSize": 65536000, // /dev/shm大小(65536000字节,约62.5MB)
            "Runtime": "oci", // 容器运行时(OCI兼容运行时)
            "ConsoleSize": [ // 控制台大小(宽和高,未设置)
                0,
                0
            ],
            "Isolation": "", // 隔离级别(未设置)
            "CpuShares": 0, // CPU共享权重(0表示默认)
            "Memory": 0, // 内存限制(0表示无限制)
            "NanoCpus": 0, // CPU核心数限制(0表示无限制)
            "CgroupParent": "", // 父cgroup路径(未设置)
            "BlkioWeight": 0, // 块IO权重(0表示默认)
            "BlkioWeightDevice": null, // 特定设备的块IO权重(未设置)
            "BlkioDeviceReadBps": null, // 特定设备的读速率限制(未设置)
            "BlkioDeviceWriteBps": null, // 特定设备的写速率限制(未设置)
            "BlkioDeviceReadIOps": null, // 特定设备的读IOPS限制(未设置)
            "BlkioDeviceWriteIOps": null, // 特定设备的写IOPS限制(未设置)
            "CpuPeriod": 0, // CPU周期(微秒,0表示默认)
            "CpuQuota": 0, // CPU配额(微秒,0表示无限制)
            "CpuRealtimePeriod": 0, // 实时CPU周期(未设置)
            "CpuRealtimeRuntime": 0, // 实时CPU运行时间(未设置)
            "CpusetCpus": "", // 允许使用的CPU核心(未限制)
            "CpusetMems": "", // 允许使用的内存节点(未限制)
            "Devices": [], // 挂载的设备(无)
            "DiskQuota": 0, // 磁盘配额(0表示无限制)
            "KernelMemory": 0, // 内核内存限制(0表示无限制)
            "MemoryReservation": 0, // 内存预留(0表示无)
            "MemorySwap": 0, // 内存+交换分区限制(0表示无限制)
            "MemorySwappiness": 0, // 内存交换iness值(0表示禁用交换)
            "OomKillDisable": false, // 是否禁用OOM杀死(否)
            "PidsLimit": 0, // PID数量限制(0表示无限制)
            "Ulimits": [ // 资源限制配置
                {
                    "Name": "RLIMIT_NOFILE", // 最大文件描述符数限制
                    "Soft": 1048576, // 软限制
                    "Hard": 1048576 // 硬限制
                },
                {
                    "Name": "RLIMIT_NPROC", // 最大进程数限制
                    "Soft": 63377, // 软限制
                    "Hard": 63377 // 硬限制
                }
            ],
            "CpuCount": 0, // CPU核心数(0表示无限制)
            "CpuPercent": 0, // CPU使用率限制(0表示无限制)
            "IOMaximumIOps": 0, // 最大IOPS限制(0表示无限制)
            "IOMaximumBandwidth": 0, // 最大带宽限制(0表示无限制)
            "CgroupConf": null // cgroup配置(未设置)
        },
        "UseImageHosts": false, // 是否使用镜像的hosts文件(否)
        "UseImageHostname": false // 是否使用镜像的主机名(否)
    }
]

查看多个容器的元数据

如果要一次性查看多个容器的元数据,可以在 podman inspect 命令后面通过空格分隔多个容器名或 ID,批量返回元数据(结果为 JSON 数组,每个元素对应一个容器)。例如:

C:\Users\Administrator> podman inspect my-nginx my-redis
[
     {
          "Id": "3b16d172fcd526b8a63e51a4676812fd35fc49861559402bee4ff12424c038ce",
          "Created": "2025-11-13T15:52:41.869458215+08:00",
          "Path": "/docker-entrypoint.sh",
          "Args": [
               "nginx",
               "-g",
               "daemon off;"
          ],
          //...
          "UseImageHosts": false,
          "UseImageHostname": false
     },
     {
          "Id": "409045b3e484f55719fb1575d9aeb3df0f43ba9b55baf011661cca7554a40bb5",
          "Created": "2025-11-13T15:52:23.573962827+08:00",
          "Path": "docker-entrypoint.sh",
          "Args": [
               "redis-server"
          ],
          //...
          "UseImageHosts": false,
          "UseImageHostname": false
     }
]

  

筛选特定字段(实用技巧)

由于 podman inspect 返回的 JSON 数据结构复杂,可通过工具(如 jq)筛选需要的字段,避免信息冗余。

安装 jq(JSON 解析工具)

若未安装,需先安装(以 CentOS 为例):

sudo dnf install jq -y  # CentOS/RHEL
# 或 
sudo apt install jq -y  # Ubuntu/Debian

常用字段筛选示例

下面以 my-nginx 容器为例,演示常用字段筛选:

(1) 查看容器 IP 地址

[user@localhost ~]$ podman inspect -f '{{.NetworkSettings.IPAddress}}' my-nginx
10.88.0.4

(2) 查看容器挂载卷信息

[user@localhost ~]$ podman inspect --format '{{.Mounts}}' my-nginx
[]

(3)查看容器环境变量

[user@localhost ~]$ podman inspect -f '{{.Config.Env}}' my-nginx
[NJS_RELEASE=1~trixie TERM=xterm container=podman PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PKG_RELEASE=1~trixie DYNPKG_RELEASE=1~trixie NGINX_VERSION=1.29.3 NJS_VERSION=0.9.4 HOME=/root HOSTNAME=3b16d172fcd5]

(4)查看容器启动命令

[user@localhost ~]$ podman inspect --format '{{.Config.Cmd}}' my-nginx
[nginx -g daemon off;]

(5)查看容器状态(运行 / 停止)

[user@localhost ~]$ podman inspect -f '{{.State.Status}}' my-nginx
running

(6)查看容器日志驱动类型配置

[user@localhost ~]$ podman inspect -f '{{.HostConfig.LogConfig.Type}}' my-nginx
journald

(7)查看容器资源限制(CPU / 内存)

[user@localhost ~]$ podman inspect -f '{{.HostConfig.Ulimits}}' my-nginx
[{RLIMIT_NOFILE 1048576 1048576} {RLIMIT_NPROC 63377 63377}]

(8)查看容器的所有端口映射(宿主机端口 -> 容器端口)

[user@localhost ~]$ podman inspect my-nginx | jq '.[0].NetworkSettings.Ports'
{
  "80/tcp": [
    {
      "HostIp": "0.0.0.0",
      "HostPort": "9000"
    }
  ]
}

上述命令中,.[0] 表示取第一个容器(若只查单个容器),.NetworkSettings.Ports 定位到端口映射字段。

  

格式化输出(自定义展示)

可以通过 --format(缩写 -f)参数自定义输出格式,支持 Go 模板语法,无需依赖 jq。

示例:简洁展示容器关键信息

[user@localhost ~]$ podman inspect -f '容器名: {{.Name}}, 状态: {{.State.Status}}, IP: {{.NetworkSettings.IPAddress}}, 启动命令: {{.Config.Cmd}}' my-nginx
容器名: my-nginx, 状态: running, IP: 10.88.0.4, 启动命令: [nginx -g daemon off;]

更多自定义格式,自行尝试。

  

注意事项

  • 元数据中的部分字段(如 State)会实时更新(如容器状态从 running 变为 exited)。

  • 若容器已被删除,podman inspect 会提示错误(需确保容器存在)。

  • 对于复杂查询,建议结合 jq 工具,通过 JSON 路径精确定位字段(可通过 podman inspect [容器名] | jq 交互式浏览完整结构)。

  

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号