📜  docker get ip all container (1)

📅  最后修改于: 2023-12-03 15:30:31.644000             🧑  作者: Mango

Docker 获取所有容器的IP地址

在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地址的需求。