Sobes.tech
Back to questions
Junior — Middle
82

Каким образом Docker управляет и ограничивает использование ресурсов таких как CPU и память для контейнеров?

Answer from AI

sobes.tech AI

Docker управляет и ограничивает ресурсы контейнеров с помощью возможностей ядра Linux, таких как cgroups и namespaces.

  • CPU: можно ограничить количество доступных процессорных ядер или долю CPU, которую контейнер может использовать, с помощью флагов --cpus, --cpu-shares, --cpu-quota и --cpu-period при запуске контейнера.

  • Память: ограничение памяти задаётся флагами --memory (максимальный объём памяти) и --memory-swap (объём swap памяти).

Пример запуска контейнера с ограничением ресурсов:

docker run --cpus="1.5" --memory="512m" nginx

В этом примере контейнер сможет использовать максимум 1.5 CPU и 512 МБ оперативной памяти.

Таким образом, Docker через cgroups контролирует и изолирует ресурсы, чтобы контейнеры не выходили за заданные пределы и не мешали работе других сервисов.