如何查看指定Docker网络中的所有容器及其主机名?
列出Docker自定义网络中的容器及主机名
当然可以列出指定Docker网络内的所有可见容器及其主机名,以下是几种实用方法,适配你的调试需求:
方法1:用docker ps快速过滤(推荐)
直接过滤出连接到master-network的容器,仅输出主机名(对应你docker-compose里的服务名):
docker ps --filter network=master-network --format "{{.Hostname}}"
输出示例:
service-1 service-2
如果需要同时查看容器名和主机名,可调整格式:
docker ps --filter network=master-network --format "{{.Names}} | {{.Hostname}}"
方法2:通过docker network inspect解析网络详情
如果需要更完整的网络关联信息,先查看网络的JSON详情,再用工具提取关键内容:
用jq(需提前安装)格式化输出:
docker network inspect master-network | jq -r '.[0].Containers[] | .Config.Hostname'
无jq时用grep+awk提取:
docker network inspect master-network | grep -o '"Hostname": "[^"]*"' | awk -F '"' '{print $4}'
调试Nginx反向代理的补充技巧
- 验证容器间DNS解析:在任意容器内ping目标主机名,比如:
若能正常解析并连通,说明网络和DNS配置正常;若失败,检查服务名拼写或网络连接状态。docker exec -it service-1 ping service-2 - 查看Nginx容器的hosts文件或DNS配置,确认是否能正确解析网络内的主机名。
内容的提问来源于stack exchange,提问作者Nathan
相关产品推荐
相关产品推荐

