📅  最后修改于: 2023-12-03 15:30:31.644000             🧑  作者: Mango
在Docker容器中,每个容器都有一个唯一的IP地址。这个IP地址可以用来在容器之间进行通信。本文将介绍如何获取所有Docker容器的IP地址。
docker inspect
命令使用docker inspect
命令可以获取到Docker容器的详细信息,包括IP地址。可以通过以下命令获取所有容器的IP地址:
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
解释一下:
docker inspect -f
命令可以指定返回的格式,{{.Name}}
表示容器的名称,{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}
表示容器的IP地址。$(docker ps -aq)
命令获取所有容器的ID,传递给docker inspect
命令。输出结果如下:
/awesome_leavitt - 172.18.0.3
/relaxed_clarke - 172.18.0.2
docker network inspect
命令使用docker network inspect
命令可以获取到Docker网络的详细信息,包括每个容器的IP地址。可以通过以下命令获取所有容器的IP地址:
docker network inspect bridge --format='{{json .Containers}}' | jq 'to_entries[] | [.key, .value.IPv4Address] | join(" - ")'
解释一下:
docker network inspect
命令可以获取指定网络的详细信息,--format
指定输出格式。.Containers
表示该网络中的所有容器。jq
命令可以解析JSON格式的输出,将.Containers
对象转换为数组,然后使用join
函数连接容器名称和IP地址。输出结果如下:
"awesome_leavitt" - "172.18.0.3/16"
"relaxed_clarke" - "172.18.0.2/16"
本文介绍了如何获取所有Docker容器的IP地址。使用docker inspect
命令可以直接获取容器的IP地址,而使用docker network inspect
命令可以获取到指定网络中所有容器的IP地址。这两种方法都可以满足获取所有容器IP地址的需求。