Создание контейнера с начальными ограничениями ресурсов
На этом шаге вы узнаете, как создать контейнер 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 будет указано в байтах.