Docker più ipaddress

Ho un paio di contenitori in esecuzione

[email protected]:~$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3401574617ea j/ros-tutorials:latest "/tini -- /ros_ent..." About an hour ago Up About an hour rosdemo_master.1.yled0m2ygtoha1gs09mrvwho5 dd1a5a4ed5b2 j/ros-tutorials:latest "/tini -- /ros_ent..." About an hour ago Up About an hour rosdemo_listener.1.fjv2u7yxihxvzkfzmomhnq9 

ma quando cerco di get il loro ipaddress utilizzando lo script sotto –

 for i in $(sudo docker ps -q); do sudo docker inspect $i| grep IPA; done 

Ottengo la seguente output –

  "SecondaryIPAddresses": null, "IPAddress": "", "IPAMConfig": { "IPAddress": "10.255.0.5", "IPAMConfig": { "IPAddress": "10.2.0.7", "SecondaryIPAddresses": null, "IPAddress": "", "IPAMConfig": { "IPAddress": "10.2.0.9", 

chiedendo perché ottengo 3 ipaddresses –

 10.255.0.5 10.2.0.7 10.2.0.9 

I contenitori sono collegati a più reti Docker.

Non utilizzare grep per estrarre gli indirizzi IP. Sono tutti i dati strutturati e Docker support la formattazione del model di andata fuori dalla casella.

Per get l'indirizzo IP principale:

 docker inspect $CID \ -f '{{ .NetworkSettings.IPAddress }}' 

Il get qualsiasi indirizzo IP assegnato a reti:

 docker inspect $CID \ -f '{{ range .NetworkSettings.Networks }}{{ .IPAddress }}{{ end }}' 

Per printingre il nome della networking insieme all'IP:

 docker inspect $CID \ -f '{{ range $k,$v :=.NetworkSettings.Networks }}{{$k}} {{.IPAddress}}{{ end }}'