Obtenha a lista de contêineres docker ip

Obtenha a lista de contêineres docker ip

Digamos que eu tenha o docker, que está executando uma quantidade x de contêineres. É possível obter de alguma forma uma lista de todos os endereços IP dos contêineres?

Desejo transformar isso em um script de alguma forma.

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

Eu olhei para a API do Docker e ela realmente não parece ter o que estou procurando. Eu gostaria que retornasse, por exemplo:

172.17.0.2
... other ips addresses

Eu sei docker inspectque existe e poderia canalizar os dados e extrair o IPAddresscampo, mas isso é para um único contêiner. Gostaria de todos os endereços IP dos contêineres. Isso é possível?

Responder1

Se você quiser tentar encontrar um contêiner Docker por seu endereço IP, você pode listar os IDs do contêiner e seus endereços IP da seguinte forma:

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

Você também pode fazer algo assim (que imprime nomes de contêineres em vez de IDs de contêineres):

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

Responder2

Que tal o abaixo?

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

informação relacionada