Как отличить физические ресурсы хост-системы от ресурсов, выделенных контейнеру в Docker?

В Docker контейнеры работают поверх ядра хост-системы, используя её физические ресурсы (CPU, память, диск, сеть). Однако контейнеры могут иметь ограничение на использование ресурсов, заданное при их запуске.

Короткий ответ

Что ответить на собеседовании

В Docker контейнеры работают поверх ядра хост-системы, используя её физические ресурсы (CPU, память, диск, сеть). Однако контейнеры могут иметь ограничение на использование ресурсов, заданное при их запуске.

Подробный разбор

Ответ с пояснениями

В Docker контейнеры работают поверх ядра хост-системы, используя её физические ресурсы (CPU, память, диск, сеть). Однако контейнеры могут иметь ограничение на использование ресурсов, заданное при их запуске.

Чтобы отличить физические ресурсы хоста от ресурсов, выделенных контейнеру, нужно понимать, что:

  • Физические ресурсы хоста — это реальные характеристики оборудования: количество ядер CPU, общий объём оперативной памяти, дисковое пространство.

  • Ресурсы контейнера — это ограничения, наложенные на контейнер через параметры Docker, например:

    • --cpus или --cpu-quota для ограничения CPU
    • --memory для ограничения оперативной памяти

Пример: если на хосте 16 ГБ RAM, а контейнер запущен с --memory=2g, то контейнеру доступно максимум 2 ГБ памяти, хотя физически доступно 16 ГБ.

Для проверки ресурсов контейнера можно использовать команду:

docker stats <container_id>

Она покажет текущие потребление CPU и памяти контейнером.

Также внутри контейнера можно посмотреть лимиты через cgroups, например:

cat /sys/fs/cgroup/memory/memory.limit_in_bytes

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку