Linuxlab

cgroups и namespaces в Linux: основа контейнеров

Обновлено 3 июля 2026 г.

cgroups и namespaces - это два механизма ядра, на которых держатся контейнеры: cgroups ограничивают ресурсы, namespaces изолируют процессы.

Частые случаи

systemd-cgls               # дерево cgroup с процессами
systemctl status nginx     # внизу видно cgroup службы
cat /sys/fs/cgroup/...     # лимиты и счётчики cgroup
lsns                       # список namespaces в системе
ls -l /proc/$$/ns          # к каким namespaces привязана оболочка

Как это устроено: лимиты плюс изоляция

Это два независимых механизма, и вместе они дают контейнер. cgroups (control groups) отвечают за СКОЛЬКО: сколько процессора, памяти и ввода-вывода достаётся группе процессов - так одна служба не съест всю машину. namespaces отвечают за ЧТО ВИДНО: процесс в своём namespace видит только свои процессы, свою сеть, свою файловую систему, как будто он один на машине. Docker и systemd не «магия»: они просто настраивают cgroups и namespaces ядра. Поэтому изнутри контейнера ps показывает лишь его процессы.

В книге

Подробно эта тема разобрана в главе Ядро: устройство и тюнинг.

См. также

Файловая система /proc, Просмотр процессов, Службы: systemctl.