簡體   English   中英

如何在bash中獲取映射到docker容器的特定主機名的所有IP地址

[英]How to get all IP addresses that map to a particular hostname of docker containers in bash

我正在使用 Docker compose 擴展多個 Redis 容器,並希望找到一種方法來獲取與 bash 中特定主機名對應的所有 IP 地址。 我有 5 個 Redis 容器,它們都有主機名redis 我試過命令getent hosts redis | awk '{ print $1 }' 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來做到這一點dig redis A | grep redis 容器內的dig redis A | grep redis 除了一些附加信息外,它還輸出所有 IP 地址,因此現在我將能夠從輸出中解析它們並將它們添加到 bash 數組中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM