📅  最后修改于: 2023-12-03 15:27:50.982000             🧑  作者: Mango
在使用 Docker 搭建应用时,经常需要获取正在运行的容器的 IP 地址。本文将介绍如何使用 Shell/Bash 脚本获取正在运行的 docker 容器的 IP。
我们可以通过执行 docker inspect
命令,获取容器的 IP 地址信息。该命令的输出结果以 JSON 格式展示,需要借助于 grep
和 awk
命令来解析并提取出 IP 地址信息。
下面的 Bash 脚本会显示当前正在运行的所有容器的 IP 地址信息:
#!/bin/bash
# 获取所有正在运行的容器 ID
CONTAINER_IDS=$(docker ps -q)
# 逐个输出容器的 IP 地址
for id in $CONTAINER_IDS
do
IP=$(docker inspect --format="{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" $id)
echo "Container ID: $id"
echo "IP Address : $IP"
done
docker ps -q
命令会输出所有正在运行的容器的 ID。docker inspect
命令会返回指定容器的配置信息,其中我们只关心容器的 IP 地址信息。--format
选项可以指定输出格式,这里我们使用了 Go 的模板语法来输出容器的 IP 地址。{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}
这个模板语法表示遍历容器配置信息中关于网络的配置,并获取容器的 IP 地址。awk
命令来过滤输出结果,只保留 IP 地址信息。通过以上方法,我们就可以方便地获取正在运行的 docker 容器的 IP 地址信息。如果需要获取指定容器的 IP 地址,可以将上述脚本中的 CONTAINER_IDS
变量设置为指定容器的 ID。