#!/bin/bash main () { # List all Docker networks networks=$(docker network ls -q --format '{{.Name}},{{.ID}}' | sort | cut -d, -f 2) # Loop through the networks and display the details for network in $networks; do local containers=$(docker network inspect --format='{{range $k, $v := .Containers}}{{$k}} {{end}}' "$network") local net_name=$(docker network inspect --format '{{ .Name }}' $network) printf "%-30s %s\n" "$net_name" "$network" for container in $containers; do local cont=$(docker network inspect --format="{{ index .Containers \"$container\" | json }}" "$network" ) local name=$(jq -r ".Name" <<< "$cont") local ip=$(jq -r ".IPv4Address" <<< "$cont") printf " %-30s %s\n" "$ip" "$name" done done } main $@