取得docker ip容器列表

取得docker ip容器列表

假設我有 docker,它正在運行 x 個容器。是否有可能以某種方式取得所有容器 IP 位址的清單?

我希望以某種方式將其寫入腳本中。

docker ps -a:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                   PORTS               NAMES
614497a23ca7        mongo               "/entrypoint.sh mongo"   7 minutes ago       Up 7 minutes             27017/tcp           some-mongo

我查看了 docker api,它似乎沒有我想要的東西。我希望它返回,例如:

172.17.0.2
... other ips addresses

我知道docker inspect存在,我可以通過管道傳輸數據並提取字段IPAddress,但那是針對單個容器的。我想要所有容器的 IP 位址。這可能嗎?

答案1

如果您想嘗試透過 IP 位址尋找 Docker 容器,您可以列出容器 ID 及其 IP 位址,如下所示:

for container in `docker ps -q`; do ips=`docker inspect $container | grep -i ipaddress | grep -v null | grep -v \"\" | cut -d ':' -f 2`; echo $container$ips; done

您也可以執行類似的操作(列印出容器名稱而不是容器 ID):

docker ps -q | xargs docker inspect --format "{{range .NetworkSettings.Networks}}{{print .IPAddress}} {{end}}{{.Name}}"

答案2

下面的怎麼樣?

for i in `docker ps -q`; do echo $i; echo " : "; docker inspect $i | grep -i ipaddress | grep -v null | cut -d ':' -f 2; done

相關內容