Sobes.tech
Back to questions
Junior — Middle
75

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

Companies where asked
Правительство МосквыПравительство Москвы

Answer from AI

sobes.tech AI

В 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 накладывает для изоляции и управления.