linux - 如何在bash中获取映射到docker容器的特定主机名的所有IP地址
问题描述
我正在使用 Docker compose 扩展几个 Redis 容器,并希望找到一种方法来获取与 bash 中特定主机名相对应的所有 IP 地址。我有 5 个 Redis 容器,它们都有 hostname redis
。我尝试了该命令getent hosts redis | awk '{ print $1 }'
以希望获得 redis Docker 映像的所有 IP 地址,但每次它只会返回其中一个。以下是在其中一个 Redis 容器中多次运行不带 awk 的命令的示例输出:
bash-4.4# getent hosts redis
172.16.0.7 redis redis
bash-4.4# getent hosts redis
172.16.0.6 redis redis
bash-4.4# getent hosts redis
172.16.0.5 redis redis
bash-4.4# getent hosts redis
172.16.0.6 redis redis
我想要一种在一个命令中获取所有 IP 地址的方法。有谁知道如何在 bash 中做到这一点?
编辑:我的问题不同,因为我没有尝试获取主机的 IP 地址,而是尝试通过自己在容器内运行 bash 脚本来获取与主机名匹配的所有 IP 地址。
解决方案
我能够dig redis A | grep redis
在容器内使用它。除了一些附加信息之外,它还输出所有 IP 地址,所以现在我可以从输出中解析它们并将它们添加到 bash 数组中。
推荐阅读
- react-hooks - 使用去抖动的 onChange 处理程序设置输入值
- javascript - 如何在 OpenLayers 中的两个遥远多边形之间创建飞行动画
- audio - 为什么我的音高对象听起来与 PRAAT 中的原始音频文件不同?
- amazon-web-services - Terraform:放置扩展策略时出错:AccessDeniedException:帐户未授权
- azure-cosmosdb - Azure Cosmos api 客户端选择 Azure.Cosmos 还是 Azure.DocumentDB.Core?
- excel - 数据透视表显示某些结果的多行,但不显示其他结果
- c++ - 构建 CMake 项目后 Visual Studio 中的引用问题
- pandas - 使用方法链接将可变长度切片分配给列
- grpc - gRPC 端到端处理元数据(标头)
- python - 将一个特定的数据点标记添加到箱线图或小提琴图(使用 holoviews / hvplot)