查看网络配置与成员
docker network inspect 显示某个 Docker 网络的完整配置与成员:子网与网关、已接入的容器及其 IP、驱动类型与选项。容器之间互访异常时,第一步应确认双方是否在同一网络、IP 与网关是否符合预期,而不是先去怀疑端口监听或应用配置。
基本信息
| 输出要点 | IPAM 的网段与网关、Containers 成员列表、Driver 与 Options |
|---|---|
| 排查用法一 | 确认目标容器所在网络与分配到的 IP |
| 排查用法二 | 检查网络子网是否与外部路由冲突 |
| 格式提取 | 配合 -f 与模板语法提取字段,便于脚本处理 |
| 默认网络 | 默认 bridge 不提供按容器名的内嵌 DNS 解析 |
| 自定义网络 | 自定义 bridge 网络提供内嵌 DNS,可按容器名访问 |
典型使用场景
- 确认两个容器是否在同一网络:不在同一网络就无法按容器名互访
- 定位容器 IP,用于与其他系统的白名单或路由配置核对
- 检查自定义网络的子网是否与宿主或对端路由冲突
- 查看网络上已接入哪些容器,排查地址是否耗尽
- 容器无法访问外网时确认默认网关是否被正确填充
使用示例
使用示例
docker network ls # 先列出所有网络
docker network inspect appnet # 看完整配置与成员
docker network inspect -f '{{range .Containers}}{{.Name}} {{.IPv4Address}}{{println}}{{end}}' appnet
docker network inspect -f '{{(index .IPAM.Config 0).Gateway}}' appnet # 提取网关
docker inspect -f '{{range $k,$v := .NetworkSettings.Networks}}{{$k}} {{$v.IPAddress}}{{println}}{{end}}' myapp输出字段读法
| 字段 | 含义 | 异常表现 |
|---|---|---|
| Driver | 网络驱动类型 | bridge 为默认桥接,只有自定义网络才有内嵌 DNS |
| IPAM.Config | 子网与网关 | 缺少网关时容器无法出网 |
| Containers | 接入的容器与 IPv4 地址 | 目标容器不在此列表说明不在同一网络 |
| Scope | 作用范围 | local 表示仅本机引擎生效 |
| Options | 驱动附加选项 | 与预期不符说明网络是手工创建而非编排生成 |
容器「无法访问外网」时先看默认网关是否被填充:自定义网络创建异常或地址段耗尽时可能缺少网关,表现为宿主机能出网而容器不能,这类问题用配置比对比抓包更快。
只对比端口不看网络归属是常见误判:两个容器不在同一网络时,即使端口监听完全正常也无法按容器名解析与互访,需要先把容器接入同一网络再验证。