![](/img/trans.png)
[英]Docker Container Attached to Network, Network Inspect Shows No Containers
[英]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
由於我現在找不到簡單的方法,我使用nmap和ifconfig創建了一個腳本,它包括從 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.