Liste der Docker-IP-Container abrufen

Liste der Docker-IP-Container abrufen

Angenommen, ich habe Docker, auf dem x Container laufen. Ist es möglich, irgendwie eine Liste aller IP-Adressen der Container zu erhalten?

Ich möchte dies irgendwie in ein Skript einbauen.

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

Ich habe mir die Docker-API angesehen und sie scheint nicht wirklich das zu bieten, wonach ich suche. Ich möchte beispielsweise Folgendes zurückgeben:

172.17.0.2
... other ips addresses

Ich weiß docker inspect, dass es existiert, und ich könnte die Daten weiterleiten und das IPAddressFeld extrahieren, aber das gilt für einen einzelnen Container. Ich hätte gerne die IP-Adressen aller Container. Ist das möglich?

Antwort1

Wenn Sie versuchen möchten, einen Docker-Container anhand seiner IP-Adresse zu finden, können Sie die Container-IDs und ihre IP-Adressen wie folgt auflisten:

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

Sie können auch Folgendes tun (dadurch werden Containernamen statt Container-IDs ausgedruckt):

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

Antwort2

Wie wäre es mit dem Folgenden?

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

verwandte Informationen