← До списку лабораторних по Docker
Повний опис / сценарій лабораторної:
Мета: навчитися обмежувати контейнер за 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. Міні звіт.
Завдання: поясни чому небезпечно залишати контейнери без лімітів у багатокористувацькому середовищі.