How to find docker network ID for every docker-compose service running in the current directory
Run the following command in the directory where docker-compose.yml
resides:
docker-compose -f $(find . -name 'docker-compose.yml' -type f) ps -q | xargs -I {} docker inspect --format '{{.Name}}: {{range .NetworkSettings.Networks}}{{.NetworkID}}{{end}}' {}
Example output:
/myservice-server-1: 3b533d2074e7230426adf0d269b399d356066130719ffd3ef68d6d492f3757f6
/myservice-ui-1: 3b533d2074e7230426adf0d269b399d356066130719ffd3ef68d6d492f3757f6
Breakdown of the command:
docker-compose -f $(find . -name 'docker-compose.yml' -type f) ps -q
: This part finds alldocker-compose.yml
files in the current directory and its subdirectories and runsdocker-compose ps -q
for each of them. This command lists the running containers’ IDs for each service defined in the Docker Compose files.xargs -I {} docker inspect --format '{{.Name}}: {{range .NetworkSettings.Networks}}{{.NetworkID}}{{end}}' {}
: This part takes the container IDs output by the previous step and runsdocker inspect
on each of them. It extracts the container’s name and its Ethernet interface information using a custom format. It formats the output as “ServiceName: NetworkID.”