要组合Docker命令查看容器详细网络状态,需分四步:查IP与网络归属(docker inspect -f '{{.NetworkSettings.Networks}}')、查所连网络全局信息(docker network inspect)、查网络模式与端口映射(docker inspect -f '{{.HostConfig.NetworkMode}}' + docker port)、查容器内连通性(docker exec ip route/ping/curl)。
要组合 docker 命令查看容器的详细网络状态,核心是把“查配置”“查连接”“查路由”“查通信”四类信息串起来,而不是只依赖单一命令。docker 本身不提供一键汇总网络诊断的命令,但通过几条命令合理组合,就能还原出完整的网络上下文。
查容器IP与网络归属
先确认容器在哪个网络、分配了什么IP、网关在哪:
- docker inspect -f '{{.NetworkSettings.Networks}}' container_name_or_id —— 显示所有已连接网络的详细配置,包括IP、子网、网关、MAC地址;
- docker inspect -f '{{.NetworkSettings.IPAddress}}' container_name_or_id —— 快速获取 bridge 网络下的 IPv4 地址(仅适用于默认 bridge);
- 若使用自定义网络(如 mynet),改用:docker inspect -f '{{.NetworkSettings.Networks.mynet.IPAddress}}' container_name_or_id。
查容器所连网络的全局信息
单看容器不够,还要看它所连网络本身的结构:
- docker network ls —— 列出所有网络,确认目标网络是否存在、驱动类型(bridge/overlay/host);
- docker network inspect bridge —— 查看默认 bridge 的子网(如 172.17.0.0/16)、网关(172.17.0.1)、已连接容器列表;
- 对自定义网络,直接替换为:docker network inspect mynet。
查容器网络模式与宿主机映射关系
搞清容器是走 NAT 还是直通宿主机网络,直接影响端口和路由行为:
- docker inspect -f '{{.HostConfig.NetworkMode}}' container_name_or_id —— 输出 host / bridge / none / container:xxx 等模式;
- 如果是 bridge 模式,再执行:docker port container_name_or_id —— 查看 -p 映射的宿主机端口与容器端口对应关系;
- 如果是 host 模式,容器端口直接绑定宿主机,docker port 会无输出,此时需用 ss -tlnp | grep :端口号 在宿主机上验证监听状态。
查容器内基础连通性(需容器有 shell 和网络工具)
光看配置不够,得进容器里实测:
- docker exec -it container_name_or_id ip addr show eth0 —— 确认容器内网卡是否启用、IP是否生效;
- docker exec -it container_name_or_id ip route —— 查看默认路由(正常应指向 docker0 网关);
- docker exec -it container_name_or_id ping -c 3 172.17.0.1 —— 测试到网关连通性;
- docker exec -it container_name_or_id curl -I http://host.docker.internal:8080 —— 测试访问宿主机服务(需 Docker 20.10+ 且未禁用该特性)。
这四组命令按顺序执行,基本能覆盖从配置到运行、从容器内到宿主机的全链路网络状态。不需要装额外工具,也不依赖容器是否安装 ifconfig 或 net-tools —— 全部基于标准 Docker CLI 和容器内基础命令。


















