如何获取将映射到bash中docker容器的特定主机名映射到的所有IP地址



我正在使用Docker组合来扩展几个Redis容器,并希望找到一种方法,以获取与Bash中特定主机名相对应的所有IP地址。我有5个Redis容器,并且所有这些容器都有主机名redis。我尝试了命令getent hosts redis | awk '{ print $1 }'希望获得Redis Docker映像的所有IP地址,但是每次它只会返回其中一个。在REDIS容器之一内几次运行命令的示例输出毫不尴尬,如下:

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地址的方法。有人知道该怎么做吗?

编辑:我的问题是不同的,因为我没有尝试获取主机的IP地址,我正在尝试通过运行bash来获取与主机名匹配的所有IP地址我自己内部的脚本。

我能够使用容器内的dig redis A | grep redis进行操作。除了一些其他信息之外,它将输出所有IP地址,因此现在我将能够从输出中解析它们并将其添加到bash数组中。

最新更新