← До фільтрів та технологій

← До списку лабораторних по Docker

Docker Лабораторна 8: Ліміти cpu і памʼяті

Технологія: Docker

Номер лабораторної: 8 · Рівень: middle

Тема: Обмеження ресурсів контейнерів

Повний опис / сценарій лабораторної:

Мета: навчитися обмежувати контейнер за cpu та памʼяттю і спостерігати наслідки.



Крок 1. Запустити контейнер без обмежень.

Команда: docker run -d --name no-limit busybox sh -c "while true; do :; done"

Пояснення: цей контейнер спробує споживати cpu.



Крок 2. Подивитися використання ресурсів.

Команда: docker stats no-limit

Пояснення: оціни навантаження на систему.



Крок 3. Зупинити контейнер.

Команда: docker stop no-limit && docker rm no-limit



Крок 4. Запустити аналогічний контейнер з обмеженням cpu.

Команда: docker run -d --name limit-cpu --cpus="0.5" busybox sh -c "while true; do :; done"

Пояснення: контейнер отримує тільки половину логічного ядра.



Крок 5. Переглянути docker stats.

Пояснення: переконайся що cpu обмежений.



Крок 6. Запустити контейнер з обмеженням памʼяті.

Команда: docker run -d --name limit-mem -m 128m busybox sh -c "while true; do dd if=/dev/zero of=/dev/null; done"

Пояснення: контейнер не зможе вийти за межі 128 мегабайт.



Крок 7. Слідкувати за поведінкою при вичерпанні памʼяті.

Пояснення: ядро може вбити процес через out of memory.



Крок 8. Перевірити коди завершення контейнера.

Команда: docker ps -a; docker inspect limit-mem --format="{{.State.OOMKilled}}"



Крок 9. Продумати стандартні ліміти для dev і prod.

Пояснення: запиши базові значення для типових сервісів.



Крок 10. Міні звіт.

Завдання: поясни чому небезпечно залишати контейнери без лімітів у багатокористувацькому середовищі.