Что такое Docker и как он работает на уровне операционной системы?

Категория: Docker

Просмотров: 13

Ответ:

Docker — это платформа для автоматизации развёртывания, масштабирования и управления контейнеризированными приложениями. Контейнеры позволяют упаковать приложение и все его зависимости в единый исполняемый образ, который можно запускать в любой системе с установленным Docker, обеспечивая совместимость и предсказуемость окружения.

Как docker работает на уровне ОС?

Docker использует ряд технологий ядра Linux для создания контейнеров и их изоляции. Основные технологии:

  1. Namespaces — это механизм ядра, который изолирует ресурсы, такие как процессы, сетевые интерфейсы и файловую систему. Каждый контейнер работает в своём пространстве имен, что создаёт иллюзию работы в отдельной операционной системе.

    • PID namespaces: изолируют процессы.
    • NET namespaces: изолируют сетевые интерфейсы.
    • MNT namespaces: изолируют файловые системы.
    • USER namespaces: изолируют пользователей и группы.
  2. Control Groups (cgroups) — это механизм, который ограничивает количество ресурсов (CPU, память, дисковое пространство), доступных для контейнера. Cgroups позволяет Docker задавать ограничения по использованию ресурсов для каждого контейнера.

  3. UnionFS (Файловые системы с наложением) — Docker использует файловую систему с наложением (например, OverlayFS), которая позволяет контейнерам делить общий доступ к базовому образу, добавляя свои изменения поверх базового слоя. Это эффективно с точки зрения использования дискового пространства, так как общий образ не копируется для каждого контейнера.

  4. Container Daemon (Docker Daemon) — это фоновый процесс, который управляет всеми объектами Docker, такими как образы, контейнеры, сети и тома. Он принимает команды от клиента Docker, например, для создания или запуска контейнера.