最常用最可靠的方式是用 docker inspect 配合格式化输出提取 ip 地址;单网络用 {{.networksettings.ipaddress}},多网络用 {{range .networksettings.networks}}{{.ipaddress}}{{end}},批量查询用 $(docker ps -q),查指定网络用 docker network inspect。
最常用、最可靠的方式是用 docker inspect 配合格式化输出,直接提取 ip 地址。其他方法各有适用场景,但 inspect 是官方推荐、兼容性最好、信息最准的核心命令。
用 docker inspect 查单个容器的 IP
这是日常使用频率最高、最稳妥的方法:
- 如果容器只接入一个网络(如默认 bridge),用这个命令:
docker inspect -f '{{.NetworkSettings.IPAddress}}' 容器名或ID - 如果容器接入了自定义网络(比如 mynet)或多个网络,用这个更通用的写法:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名或ID - 注意:Windows 命令行中要把单引号
'换成双引号"
批量查所有运行中容器的名称和 IP
适合快速掌握当前环境整体网络布局:
- 执行这行命令,就能列出所有运行中容器的名称和对应 IPv4 地址:
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -q) - 输出类似:
/web-app - 172.18.0.3/db - 172.18.0.4
通过 docker network inspect 查指定网络下的所有容器 IP
当你知道容器连在哪个网络(比如叫 myapp_net),想一次性看清该网络里所有成员的 IP 和状态,就用这个:
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
- 先查网络列表:
docker network ls - 再查某网络详情:
docker network inspect myapp_net - 输出中每个容器条目下都有
IPv4Address字段,格式如"172.18.0.5/16",斜杠后面是子网掩码,前面就是实际 IP
进容器内部查(辅助验证用)
不推荐作为主要手段,但在调试连通性或确认容器内网络栈是否正常时很实用:
- 用 ip 命令(现代镜像默认支持):
docker exec 容器名 ip -4 addr show eth0 | grep 'inet ' - 或看 /etc/hosts(部分镜像会把自身 IP 写进去):
docker exec 容器名 cat /etc/hosts | grep -v '^#' | grep '\' - 注意:ifconfig 需要额外安装 net-tools,很多精简镜像不含
不需要记太多命令,记住 inspect -f 这一套就够应对绝大多数情况。关键是理解容器 IP 是动态分配、绑定到网络的,不是固定属性——所以每次查都要基于实时运行状态。










