Docker容器内网IP可通过五种方法查看:一、docker inspect -f提取;二、grep过滤IPAddress字段;三、docker exec ip addr show查接口;四、docker network inspect查自定义网络;五、docker container inspect语义化查询。

如果您在 Linux 系统中运行了 Docker 容器,但需要确认其内网 IP 地址以便调试网络连接或容器间通信,则可能是由于容器未暴露端口或未显式配置网络导致 IP 不直观可见。以下是查看 Docker 容器 IP 地址的多种方法:
一、使用 docker inspect 命令直接提取 IP
该命令通过解析容器元数据中的网络设置,精准定位容器在各网络(如 bridge、自定义网络)中分配的 IPv4 地址,适用于所有标准网络模式下的容器。
1、列出正在运行的容器,获取容器名称或 ID:
docker ps --format "{{.Names}}\t{{.ID}}"
2、执行格式化查询命令,仅输出 IP 地址:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名称或ID
3、若需同时显示容器名与 IP,可运行:
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
二、使用 docker inspect 配合 grep 提取 IPAddress 字段
该方法不依赖 Go 模板语法,兼容旧版 Docker 或模板解析失败场景,通过文本匹配快速定位 IP 字段原始位置。
1、执行 inspect 并筛选含 IPAddress 的行:
docker inspect 容器名称或ID | grep "IPAddress"
2、进一步精简输出(去除引号与空格):
docker inspect 容器名称或ID | grep "IPAddress" | head -n 1 | awk '{print $2}' | tr -d '",'
三、在容器内部执行 ip addr show 命令
该方式直接读取容器操作系统层面的网络接口配置,能反映实际生效的 IP 及子网掩码,尤其适用于多网卡或多网络接入的容器。
1、确保容器处于运行状态:
docker ps | grep 容器名称或ID
2、执行命令获取 eth0 接口的 IPv4 地址:
docker exec 容器名称或ID ip -4 addr show eth0 | grep -oP 'inet \K[\d.]+'
3、若不确定主接口名,可列出全部 IPv4 地址:
docker exec 容器名称或ID ip -4 addr | grep -oP 'inet \K[\d.]+' | head -n 1
四、使用 docker network inspect 查看指定网络下所有容器 IP
当容器接入用户自定义网络(如 my-net)时,此方法可一次性列出该网络中全部容器的名称、IPv4 和 IPv6 地址,便于横向比对与拓扑分析。
1、列出所有网络并识别目标网络名称:
docker network ls
2、检查目标网络详情,并过滤容器 IP 行:
docker network inspect 网络名称 | grep -A 10 -B 2 '"IPv4Address"
3、提取每台容器的名称与对应 IP:
docker network inspect 网络名称 | jq -r '.[0].Containers | to_entries[] | "\(.key) \(.value.IPv4Address)"'
五、使用 docker container inspect 替代命令(Docker 17.06+)
该命令是 docker inspect 的语义化别名,明确指向容器资源,避免与其他 Docker 对象(如镜像、卷)混淆,语法更清晰。
1、确认 Docker 版本支持:
docker version --format '{{.Server.Version}}'
2、执行容器专用 inspect 查询:
docker container inspect 容器名称或ID --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
3、若需适配 Windows PowerShell 环境,将单引号替换为双引号:
docker container inspect "容器名称或ID" --format="{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}"










