![](/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.