docker inspect 命令可获取容器完整底层 JSON 元数据,涵盖网络、挂载、状态等全部配置;支持按名或 ID 查询,可用 -f 提取关键字段,结合 jq 或导出文件提升可读性。

直接运行 docker inspect 就能拿到容器最完整、最底层的配置信息,它不是摘要,而是原始 JSON 元数据,涵盖网络、挂载、状态、环境变量、启动参数等全部细节。
基础用法:查一个容器的全部信息
只要容器存在(无论是否运行),就能查:
- 用名字查:
docker inspect nginx-web - 用 ID 查(支持前几位模糊匹配):
docker inspect a1b2c3
输出是缩进良好的 JSON,适合快速扫读。注意:已删除的容器无法查询。
精准提取:用 -f 快速拿到关键字段
不用翻长 JSON,用 --format(简写 -f)配合 Go 模板语法直取所需值:
- IP 地址(默认桥接网络):
docker inspect -f '{{.NetworkSettings.IPAddress}}' nginx-web - 端口映射情况:
docker inspect -f '{{.NetworkSettings.Ports}}' nginx-web - 挂载卷详情:
docker inspect -f '{{.Mounts}}' nginx-web - 当前运行状态:
docker inspect -f '{{.State.Status}}' nginx-web - 启动命令:
docker inspect -f '{{.Config.Cmd}}' nginx-web
字段路径区分大小写,嵌套结构用点号逐级访问,比如自定义网络下的 IP 要写成 .NetworkSettings.Networks.mynet.IPAddress。
增强可读性:用 jq 或导出文件辅助查看
原始 JSON 太长时,可结合外部工具提升效率:
- 用
jq美化并过滤(需提前安装):docker inspect nginx-web | jq '.[0].Config.Env' - 保存到文件再打开:
docker inspect nginx-web > info.json - 一行显示多个关键项:
docker inspect -f '{{.Name}} {{.State.Status}} {{.NetworkSettings.IPAddress}}' nginx-web
重点字段说明:哪些信息决定容器行为
真正影响容器运行的元数据集中在几个核心字段:
-
Config:含镜像名、环境变量(
.Env)、默认命令(.Cmd)、工作目录(.WorkingDir)、暴露端口(.ExposedPorts) -
NetworkSettings:含 IP、网关、所属网络、端口绑定(
.Ports) - Mounts:实际生效的数据卷或绑定挂载列表
-
State:实时状态(
.Status)、启动/停止时间(.StartedAt/.FinishedAt)、健康检查结果(.Health.Status)
不复杂但容易忽略


















