Docker inspect 查看容器的ip

基本命令

查看完整信息中的网络配置

docker inspect container_name

直接获取 IP 地址(最常用)

# 使用容器名称
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name

# 使用容器 ID
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_id

简化版本(默认网络)

docker inspect -f '{{.NetworkSettings.IPAddress}}' container_name

高级用法

查看所有网络接口的 IP

docker inspect -f '{{json .NetworkSettings.Networks}}' container_name | jq

查看特定网络的 IP

# 查看 bridge 网络的 IP
docker inspect -f '{{.NetworkSettings.Networks.bridge.IPAddress}}' container_name

# 查看自定义网络的 IP
docker inspect -f '{{.NetworkSettings.Networks.my_network.IPAddress}}' container_name

批量查看多个容器 IP

# 查看所有运行中容器的 IP
docker ps -q | xargs -I {} docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' {}

# 更清晰的显示格式
docker ps --format "table {{.Names}}\t{{.Status}}" | tail -n +2 | awk '{print $1}' | xargs -I {} sh -c 'echo -n "{} - "; docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" {}'

实用示例

创建别名(推荐)

~/.bashrc~/.zshrc 中添加:

alias dip="docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'"

使用方法:

dip container_name

查看详细网络信息

docker inspect container_name | grep -A 10 "NetworkSettings"

一键查看容器名称和 IP

docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name

其他相关命令

使用 docker ps 显示 IP(需要格式化)

# Docker 20.10+ 版本支持
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

进入容器查看网络配置

docker exec -it container_name ip addr show
# 或
docker exec -it container_name hostname -I

查看容器的所有网络接口

docker exec -it container_name cat /etc/hosts

实际应用场景

# 1. 快速获取容器 IP 用于连接
CONTAINER_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' my_app)
echo "App is running at: http://$CONTAINER_IP:8080"

# 2. 检查容器网络连通性
ping $(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name)

# 3. 在脚本中使用
#!/bin/bash
for container in $(docker ps -q); do
    name=$(docker inspect -f '{{.Name}}' $container | cut -c2-)
    ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $container)
    echo "$name: $ip"
done

这些命令可以帮助您快速获取 Docker 容器的 IP 地址,适用于不同的使用场景和需求。

Last updated

Was this helpful?