TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #90 867
Погружение в контейнеры и пространства процессов

Сегодня познакомимся с nsenter - инструментом для системных администраторов и разработчиков, работающих с контейнерами и виртуальными средами. Она позволяет подключаться к различным пространствам имен (namespaces) существующих процессов и выполнять команды в их контексте. Это особенно полезно для работы с контейнерами Docker, Kubernetes и другими решениями виртуализации.

Что такое nsenter?

nsenter позволяет «войти» в пространство имен процесса, чтобы получить доступ к его окружению. Пространства имен в Linux используются для изоляции процессов, сети, монтирования файловых систем и других аспектов системы.


Для чего используется nsenter?

Отладка контейнеров: подключение к контейнеру без использования Docker-клиента.
Администрирование: выполнение команд в контексте изолированного процесса или контейнера.
Миграция и анализ: тестирование и перенос задач между разными пространствами процессов.


1. Подключение к процессу. Рассмотрим пример использования, попробуем подключиться к процессу с PID 1234:


sudo nsenter --target 1234 --all


Эта команда подключит вас ко всем пространствам имен, связанным с процессом 1234, включая монтирование, сеть, PID и другие.

2. Подключение только к пространству имен PID. Иногда необходимо работать только с процессами, не затрагивая сеть и файловую систему:


sudo nsenter --target 1234 --pid --mount --uts


Здесь подключение происходит к пространствам процессов (PID), монтирования и UTS (имена хостов).

3. Использование nsenter для работы с контейнерами Docker. Для начала нужно найти PID контейнера:


docker inspect -f '{{.State.Pid}}' <container_id>


Затем подключитесь к контейнеру:


sudo nsenter --target <PID> --mount --uts --ipc --net --pid


4. Использование nsenter для выполнения команды. Чтобы выполнить команду в пространстве имен процесса:


sudo nsenter --target 1234 --all -- bash


Откроется оболочка Bash, в которой вы сможете выполнять команды в контексте процесса с PID 1234.

---

Если nsenter не установлен в системе, его всегда можно установить через пакет util-linux

BashTex 📱 #linux #utils
  • 👍 3
More from @bash_tex
  1. Oct 14, 2026coproc: как Bash общается с фоновым процессом в обе стороны Обычно Bash запускает фоновый…
  2. Oct 13, 2026openat2(): как Linux защищает от выхода за пределы каталога Допустим, приложение должно чи…
  3. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  4. Oct 9, 2026BashTex 📱 #мем
  5. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  6. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →