Создание контейнера с начальными ограничениями ресурсов
На этом шаге вы узнаете, как создать контейнер Docker и установить начальные ограничения ресурсов для CPU и памяти. Ограничения ресурсов важны для предотвращения ситуации, когда один контейнер потребляет все доступные ресурсы хоста, что может повлиять на производительность других контейнеров и самого хоста.
Сначала загрузим образ ubuntu
из Docker Hub. Этот образ будет использоваться как основа для нашего контейнера.
docker pull ubuntu:latest
Вы должны увидеть вывод, указывающий на загрузку и извлечение образа.
Теперь создадим контейнер с именем my-limited-container
с определёнными ограничениями ресурсов. Мы используем команду docker run
с флагами --cpus
и --memory
.
Флаг --cpus
ограничивает количество ресурсов CPU, которые может использовать контейнер. Значение представляет собой число с плавающей точкой, указывающее количество ядер CPU. Например, --cpus 0.5
означает, что контейнер может использовать не более половины ядра CPU.
Флаг --memory
ограничивает объём памяти, доступный контейнеру. Значение можно указать в байтах, килобайтах (k), мегабайтах (m) или гигабайтах (g). Например, --memory 512m
ограничивает контейнер 512 мегабайтами памяти.
В этом примере мы создадим контейнер, выполняющий команду sleep infinity
, которая поддерживает работу контейнера бесконечно. Мы ограничим его использование CPU до 0.5 ядер и памяти до 256 мегабайт.
docker run -d --name my-limited-container --cpus 0.5 --memory 256m ubuntu:latest sleep infinity
Разберём команду подробно:
docker run
: Эта команда используется для создания и запуска нового контейнера.
-d
: Этот флаг запускает контейнер в detached mode (фоновом режиме).
--name my-limited-container
: Присваивает контейнеру имя my-limited-container
.
--cpus 0.5
: Ограничивает использование CPU контейнером до 0.5 ядер.
--memory 256m
: Ограничивает использование памяти контейнером до 256 мегабайт.
ubuntu:latest
: Указывает используемый образ Docker (последняя версия Ubuntu).
sleep infinity
: Команда, выполняемая внутри контейнера. Поддерживает его работу.
После выполнения команды Docker выведет ID контейнера.
Чтобы проверить, что контейнер запущен и ограничения применены, можно использовать команду docker inspect
. Эта команда предоставляет детальную информацию о контейнере.
docker inspect my-limited-container
Вывод docker inspect
представляет собой большой JSON-объект. В разделе HostConfig
можно найти поля CpuShares
и Memory
, чтобы увидеть применённые ограничения. Обратите внимание, что --cpus 0.5
преобразуется в значение CpuShares
равное 512 (по умолчанию 1 CPU соответствует 1024 shares). Значение Memory
будет указано в байтах.