Как я могу просмотреть сетевой адаптер, связанный с док-контейнером - PullRequest
0 голосов
/ 31 октября 2019

Как просмотреть сетевой адаптер, связанный с контейнером.

Я запустил приложение, которое запускает 50 док-контейнеров и создал 50 "виртуальных" сетевых адаптеров в моей системе Ubuntu 18.04.

Я могупросматривать сетевые адаптеры с ifconfig -a. Он показывает ipv6, но не ipv4. Я также могу просмотреть док-контейнер ipv4 с docker inspect, но не ipv6.

Я не нашел способа связать сетевой адаптер с док-контейнером.

Ответы [ 2 ]

0 голосов
/ 31 октября 2019

Вы можете проверить интерфейс ifindex пары veth:

brctl show docker0

Чтобы увидеть интерфейсы veth в Docker Bridge, теперь, используя этот скрипт, вы можете увидеть, какой интерфейс использует ваш контейнер:

#!/bin/bash

for i in $(ip link list | awk -F '@' '/veth/ {split($2,a,":"); print a[1]}' | sed 's/if//g');do
  for dock in $(docker ps --quiet);do
    dock_index=$(docker exec -ti $dock cat /sys/class/net/eth0/ifindex | sed 's/\r$//')
    if [[ $i == $dock_index ]]; then
       echo "$i $dock"
    fi
  done
done
0 голосов
/ 31 октября 2019

Запустите эту команду, чтобы найти свой сетевой идентификатор докера:

docker network ls --no-trunc

NETWORK ID                                                         NAME                DRIVER              SCOPE
1849dpjmcnj7ckw4q2svhvj4r                                          base_default        overlay             swarm

, а затем проверьте его:

docker inspect <container_name> | grep "1849dpjmcnj7ckw4q2svhvj4r"
                        "Target": "1849dpjmcnj7ckw4q2svhvj4r",
                    "NetworkID": "1849dpjmcnj7ckw4q2svhvj4r",
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...