如何通过IP查找Docker容器?已知IP快速定位对应容器的方法
快速通过Docker容器IP查找对应容器的方法
嗨,这个场景我太熟悉了!当一堆容器在跑的时候,靠IP找容器确实头疼,给你几个亲测高效的方法:
直接过滤所有运行中容器的IP与名称
这条命令会一次性列出所有运行中容器的名称和对应的IP地址,然后通过grep定位目标IP,结果一目了然:docker inspect -f '{{.Name}} -> {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -q) | grep <你的容器IP>要是需要包含已停止的容器,把
docker ps -q换成docker ps -aq就行。用jq工具精准过滤(需提前安装jq)
如果你系统里装了jq(一款轻量JSON处理工具),可以用这条命令直接输出匹配IP的容器名称和ID,格式更整洁:docker inspect $(docker ps -q) | jq -r 'select(.NetworkSettings.Networks[].IPAddress == "<你的IP>") | .Name, .Id'纯Shell循环实现(无需额外工具)
要是不想装jq,用原生Shell命令也能搞定,逻辑就是遍历所有容器,逐个检查IP是否匹配:docker ps --format "{{.ID}}: {{.Names}}" | while read line; do id=$(echo "$line" | cut -d: -f1) ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$id") if [ "$ip" = "<你的IP>" ]; then echo "$line" fi done
我平时最常用第一个方法,敲完命令回车就能出结果,速度最快。如果经常需要做这类操作,装个jq用第二个方法体验会更好~
内容的提问来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

