用户国营 发表于 2024-7-16 07:07:02

docker inspect 如何提取容器的ip和端口 网络信息?

目次
通过原生Linux命令过滤找到IP
通过jq工具找到IP
使用docker -f 的过滤(模板)
查找端口映射信息
查看容器内部细节
docker inspect 容器ID或容器名 通过原生Linux命令过滤找到IP


https://img-blog.csdnimg.cn/img_convert/4a18a987a4e7588b28339900686916b9.png
通过jq工具找到IP



[*]jq 是一个轻量级且灵活的命令行工具,用于剖析、过滤、修改、和处置惩罚 JSON 格式的数据。类似于 sed、awk 或 grep,但专门针对 JSON 数据格式。jq 答应你使用简单的命令从复杂的 JSON 数据结构中提取信息并进行操纵。
#安装
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install jq -y
#提取IP
docker inspect influxdb | jq '..NetworkSettings'
#找到IP地址大概位置
docker inspect influxdb | jq -r '..NetworkSettings.Networks.compose_CIG_net.IPAddress'
#提取IP具体地址 使用docker -f 的过滤(模板)

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

[*]使用了 docker inspect 的 Go 模板功能,通过 range 关键字遍历所有的网络设置 。 会遍历所有网络并输出每个网络中的 IP 地址。假如你的容器连接到多个网络,这个命令会输出所有网络的 IP 地址。
查找端口映射信息

docker inspect influxdb | jq '..NetworkSettings.Ports'
#输出 JSON 格式的端口映射详情,包含每个端口的所有映射信息。

docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}}{{$p}} -> {{(index $conf 0).HostPort}}{{end}}' influxdb
简洁的输出
https://img-blog.csdnimg.cn/img_convert/f6177da5d520f3f659b83372f5999ce5.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: docker inspect 如何提取容器的ip和端口 网络信息?