Получить список контейнеров 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

Если вы хотите попытаться найти контейнер Docker по его IP-адресу, вы можете вывести список идентификаторов контейнеров и их 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

Вы также можете сделать что-то вроде этого (что выведет имена контейнеров вместо идентификаторов контейнеров):

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

Связанный контент