Для отладки изолированного процесса необязательно заходить внутрь контейнера или менять его образ!
Linux хранит namespaces процесса в /proc//ns/, а nsenter позволяет выполнить команду внутри выбранного namespace уже работающего процесса.
Например, если сервис видит другую сеть, чем хост:
sudo nsenter -t 1842 -n ss -lntp
-t 1842 выбирает процесс, а -n подключает команду к его network namespace. В результате ss работает с тем же сетевым стеком, таблицами маршрутизации и интерфейсами, которые доступны целевому процессу.
То же самое можно сделать с файловыми монтированиями:
sudo nsenter -t 1842 -m findmnt
А если для диагностики нужны сразу несколько namespaces:
sudo nsenter -t 1842 -m -n -p sh
Так можно получить shell с mount, network и PID namespace нужного процесса и запускать внутри обычные ip, ss, findmnt, ps и другие диагностические инструменты.
При этом nsenter не создаёт новый namespace — он присоединяет запускаемую команду к уже существующему.
🔥 nsenter особенно полезен, когда процесс изолирован namespaces, а внутри его окружения нет диагностических утилит: вместо установки инструментов туда можно зайти в нужный namespace с хоста и исследовать проблему на месте.
🚪 Linux Ready | #совет
Linux хранит namespaces процесса в /proc//ns/, а nsenter позволяет выполнить команду внутри выбранного namespace уже работающего процесса.
Например, если сервис видит другую сеть, чем хост:
sudo nsenter -t 1842 -n ss -lntp
-t 1842 выбирает процесс, а -n подключает команду к его network namespace. В результате ss работает с тем же сетевым стеком, таблицами маршрутизации и интерфейсами, которые доступны целевому процессу.
То же самое можно сделать с файловыми монтированиями:
sudo nsenter -t 1842 -m findmnt
А если для диагностики нужны сразу несколько namespaces:
sudo nsenter -t 1842 -m -n -p sh
Так можно получить shell с mount, network и PID namespace нужного процесса и запускать внутри обычные ip, ss, findmnt, ps и другие диагностические инструменты.
При этом nsenter не создаёт новый namespace — он присоединяет запускаемую команду к уже существующему.
🔥 nsenter особенно полезен, когда процесс изолирован namespaces, а внутри его окружения нет диагностических утилит: вместо установки инструментов туда можно зайти в нужный namespace с хоста и исследовать проблему на месте.
🚪 Linux Ready | #совет