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

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

Docker Лабораторна 42: Ліміт процесів pids-limit

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

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

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

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

Мета: навчитися обмежувати кількість процесів у контейнері щоб уникати fork bomb сценаріїв.



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

Команда: docker run -it --rm --name pids-free ubuntu bash

Пояснення: всередині контейнера зараз дозволено створювати багато процесів.



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

Команда: apt update && apt install -y procps

Пояснення: знадобляться ps і інші інструменти.



Крок 3. Запустити нескладний скрипт який породжує багато процесів.

Пояснення: наприклад цикл який стартує sleep у підпроцесах.



Крок 4. Подивитися скільки процесів працює.

Команда: ps aux | wc -l

Пояснення: зафіксуй число у конспекті.



Крок 5. Вийти з контейнера.



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

Команда: docker run -it --rm --pids-limit=50 --name pids-limited ubuntu bash

Пояснення: контейнер не зможе створити більше 50 процесів.



Крок 7. Повторити експеримент зі скриптом.

Пояснення: у певний момент ядро почне відхиляти спроби створення нових процесів.



Крок 8. Перевірити лог ядра або syslog.

Пояснення: там можуть бути записи про досягнення ліміту pids.



Крок 9. Оцінити який pids-limit підходить для твого типового сервісу.

Пояснення: веб сервери і воркер пули мають передбачувану кількість процесів.



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

Завдання: опиши ризики якщо pids-limit занадто малий або занадто великий для прод сервісів.