簡體   English   中英

如何從同一網絡中的 docker 容器中掃描 docker 容器 IP?

[英]How to scan docker containers IPs from a docker container that is in the same network?

我正在使用 docker-compose 運行多個 docker 容器,並且它們都在同一個網絡中。

一旦容器啟動並運行,我想通過 shell 腳本從其中一個容器訪問所有其他容器,該腳本從 Z05B6053C41A21340AFD6FC3B150B 內部的容器網絡中檢索其他容器的所有 IP 地址。

我知道有一種方法可以使用容器名稱獲取 IP 地址,但是我正在運行帶有 --scale 標志的 docker-compose 所以腳本不知道該網絡中有多少容器,我很困惑,不知道該怎么做.

所有容器的基礎鏡像是 ubuntu:20.04

由於我現在找不到簡單的方法,我使用nmapifconfig創建了一個腳本,它包括從 docker 機器之一獲取 inet(以太網接口)的 IP 地址,然后使用 nmap 在該網絡上查找:

#!/bin/bash

EI=$(/sbin/ifconfig eth0 | grep inet | awk '{ print $2}') # Get inet IP of eth0
IPS=($(nmap $EI/24 | grep dindood | awk '{ print $6}' | sed 's/.$//; s/^.//')) # Look for the nodes Ip addresses
NAMES=($(nmap $EI/24 | grep dindood | awk '{ print $5}' | cut -f1 -d".")) # Look for the nodes Containers names
echo "host ip=$EI"

for i in "${!IPS[@]}"; do #loop through IP addresses found

    echo "hostname= ${NAMES[$i]} | IP= ${IPS[$i]}"

done

output 對我來說看起來像這樣:

host ip=192.168.160.3
hostname= my_project_container_2 | IP= 192.168.160.2
hostname= my_project_container_1 | IP= 192.168.160.4

暫無
暫無

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

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