Como encontrar ID de rede docker para cada serviço docker-compose em execução no diretório atual

Execute o seguinte comando no diretório onde docker-compose.yml reside:

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}}' {}

Saída de exemplo:

docker_network_ids_output.txt
/myservice-server-1: 3b533d2074e7230426adf0d269b399d356066130719ffd3ef68d6d492f3757f6
/myservice-ui-1: 3b533d2074e7230426adf0d269b399d356066130719ffd3ef68d6d492f3757f6

Detalhamento do comando:

  • docker-compose -f $(find . -name 'docker-compose.yml' -type f) ps -q: Esta parte encontra todos os arquivos docker-compose.yml no diretório atual e seus subdiretórios e executa docker-compose ps -q para cada um deles. Este comando lista os IDs dos containers em execução para cada serviço definido nos arquivos Docker Compose.
  • xargs -I {} docker inspect --format '{{.Name}}: {{range .NetworkSettings.Networks}}{{.NetworkID}}{{end}}' {}: Esta parte pega os IDs de container da saída do passo anterior e executa docker inspect em cada um deles. Ele extrai o nome do container e sua informação de interface Ethernet usando um formato personalizado. Ele formata a saída como “NomeDoServico: NetworkID.”

Check out similar posts by category: Docker