Выполните следующую команду в каталоге, где находится docker-compose.yml:
docker_network_ids.sh
docker-compose -f $(find . -name 'docker-compose.yml' -type f) ps -q | xargs -I {} docker inspect --format '{{.Name}}: {{range .NetworkSettings.Networks}}{{.NetworkID}}{{end}}' {}Пример вывода:
docker_network_ids_output.txt
/myservice-server-1: 3b533d2074e7230426adf0d269b399d356066130719ffd3ef68d6d492f3757f6
/myservice-ui-1: 3b533d2074e7230426adf0d269b399d356066130719ffd3ef68d6d492f3757f6Разбор команды:
docker-compose -f $(find . -name 'docker-compose.yml' -type f) ps -q: Эта часть находит все файлыdocker-compose.ymlв текущем каталоге и его подкаталогах и запускаетdocker-compose ps -qдля каждого из них. Эта команда выводит ID запущенных контейнеров для каждой службы, определённой в файлах Docker Compose.xargs -I {} docker inspect --format '{{.Name}}: {{range .NetworkSettings.Networks}}{{.NetworkID}}{{end}}' {}: Эта часть берёт ID контейнеров, выведенные предыдущим шагом, и запускаетdocker inspectдля каждого из них. Она извлекает имя контейнера и информацию о его Ethernet-интерфейсе с использованием пользовательского формата. Она форматирует вывод как “ServiceName: NetworkID.”
Check out similar posts by category:
Docker
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow