容器网络拓扑核心字段为networksettings.networks,是映射各网络(如bridge、app_net)及其ip、gateway、subnet、macaddress等配置的map;可通过docker inspect配合jq或go template精准提取和验证。

查看容器网络拓扑的核心字段
容器的网络拓扑结构主要体现在 NetworkSettings.Networks 字段中,它描述了容器连接到哪些网络、各网络下的 IP、网关、MAC 地址、子网等完整拓扑信息。该字段是 map 类型(如 bridge、app_net),每个键对应一个网络名称,值为该网络内的详细配置。
提取完整网络拓扑信息
运行以下命令可获取结构清晰的拓扑数据:
-
docker inspect -f '{{json .NetworkSettings.Networks}}' CONTAINER_NAME_OR_ID | jq '.'—— 输出美化后的 JSON,含所有网络的 IP、Gateway、Subnet、MacAddress 等 -
docker inspect CONTAINER_NAME_OR_ID | jq '.[0].NetworkSettings.Networks'—— 全量 inspect 后用 jq 过滤,适合需要交叉比对其他字段时使用
注意:如果容器只接入默认 bridge 网络,输出中将只有 "bridge" 键;若加入自定义网络(如 my-net),会同时列出多个键,体现多网络并存的拓扑关系。
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
按需提取关键拓扑元素
针对常见排查场景,可精准提取特定信息:
- 查看所有网络的 IPv4 地址:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}} ({{.NetworkID}}){{"\n"}}{{end}}' CONTAINER_NAME_OR_ID - 获取某网络(如
app_net)的网关与子网:docker inspect -f '{{with index .NetworkSettings.Networks "app_net"}}{{.Gateway}} {{.Subnet}}{{end}}' CONTAINER_NAME_OR_ID - 列出容器所连网络名称及驱动类型(需配合 network inspect):
docker inspect -f '{{range .NetworkSettings.Networks}}{{.NetworkID}}{{"\n"}}{{end}}' CONTAINER_NAME_OR_ID | xargs -r -n1 docker network inspect --format='{{.Name}}: {{.Driver}}'
结合网络对象验证拓扑一致性
仅看容器侧信息可能不够,建议联动检查对应网络对象:
- 找出容器连接的网络 ID:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.NetworkID}}{{"\n"}}{{end}}' CONTAINER_NAME_OR_ID - 用该 ID 查网络详情:
docker network inspect NETWORK_ID或直接查网络名:docker network inspect bridge - 对比两者中的
Containers列表和IPAM.Config,确认容器是否真实纳入该网络子网、是否有 IP 冲突或未分配情况
这种双向验证能有效识别拓扑异常,比如容器显示已连 my-net,但 docker network inspect my-net 中无该容器 ID,说明网络连接未生效。










