ℹ️ Иногда нужно понять, какие сетевые соединения устанавливает контейнер Docker в реальном времени: какие хосты он запрашивает, какие порты открыты и как ведёт себя с сетью. Вместо инструментов, вроде Wireshark, можно воспользоваться встроенными средствами Linux и Docker.
🖥 1. Используйте nsenter для работы с пространством имён сети контейнера
Docker-контейнеры работают в собственных сетевых неймспейсах, и чтобы подключиться к ним, можно использовать утилиту nsenter.
‣ Сначала узнайте PID процесса контейнера:
docker inspect -f '{{.State.Pid}}' <container_name_or_id>
‣ Теперь подключитесь к сетевому пространству контейнера:
nsenter -t <PID> -n bash
🔍 2. Реальный аудит с помощью ss
Находясь внутри контейнера, используйте командду ss для анализа сетевых соединений:
ss -tunap
❔ Это выведет:
- Все текущие TCP/UDP соединения,
- Порты, на которых работает контейнер,
- Активные процессы, связанные с каждым соединением.
📂 3. Альтернатива: мониторинг трафика с tcpdump
Если вам нужно глубже копнуть сетевой трафик:
tcpdump -i eth0 -nn
ℹ️ Где eth0 — интерфейс контейнера. Это покажет все пакеты, проходящие через интерфейс.
🐳 4. Автоматизация через docker exec
Если нужно сделать это быстрее, используйте docker exec для запуска сетевых команд напрямую в контейнере:
docker exec <container_name> ss -tunap
✳️ Этот трюк — отличный способ держать руку на пульсе и понимать, что делают ваши контейнеры в сети.
tags: #полезно #docker #сети
🧭 @recura_tech


