Подтвердить что ты не робот

Разница между группами и пространствами имен

Недавно я начал изучать докер, и кажется, что большая часть тяжелого подъема выполняется ядром linux, используя пространства имен и группы.

Несколько вещей, которые я нахожу в замешательстве, следующие:

  • В чем разница между пространством имен и cgroup? Каковы различные случаи использования, которые они затрагивают?

  • Что такое докер, реализованный поверх этого, чтобы получить популярность?

  • Я хотел бы знать внутренности этих функций и то, как они реализованы.

4b9b3361

Ответ 1

Правильные ссылки для этих двух понятий были исправлены в PR 14307:

Под капотом Docker построен на следующих компонентах:

cgroups и namespaces возможности Linux ядро

С

  • cgroup: управляющие группы предоставляют механизм для агрегации/разбиения наборов задач и всех их будущих детей в иерархические группы со специализированным поведением.
  • namespace: обертывает глобальный системный ресурс в абстракции, что делает его видимым для процессов в пространстве имен, что у них есть свой отдельный изолированный экземпляр глобального ресурса.

Короче:

  • Cgroups= ограничивает объем использования;
  • пространства имен= ограничивает то, что вы можете видеть (и, следовательно, использовать)

Подробнее в разделе Анатомия контейнера: пространства имен, группы и некоторая файловая система Magic "Жером Петцанио.

Группы включают в себя измерение и ограничение ресурсов:

  • память
  • CPU
  • блок ввода/вывода
  • сеть

Пространства имен предоставляют процессы со своим видом системы

Несколько пространств имен:

Ответ 2

cgroups ограничивает ресурсы, которые процесс или набор процессов может использовать эти ресурсы, может быть CPU, память, сетевой ввод-вывод или доступ к файловой системе, в то время как пространство имен ограничивает видимость группы процессов для остальной части системы.

для получения более подробной информации Как Linux-группы и пространства имен, сделанные в современных контейнерах, возможно