Sobes.tech
Junior — Middle

Hoe onderscheid je de fysieke bronnen van het host-systeem van de bronnen die aan een container in Docker zijn toegewezen?

sobes.tech AI

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