如何查找当前目录中运行的每个 docker-compose 服务的 docker 网络 ID
在 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。此命令列出 Docker Compose 文件中定义的每个服务的运行中容器 ID。xargs -I {} docker inspect --format '{{.Name}}: {{range .NetworkSettings.Networks}}{{.NetworkID}}{{end}}' {}:这部分获取上一步输出的容器 ID 并对每个运行docker inspect。它使用自定义格式提取容器名称及其以太网接口信息。它将输出格式化为"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