← До списку лабораторних по Docker
Повний опис / сценарій лабораторної:
Мета: зрозуміти чому запуск повноцінного systemd у контейнері зазвичай вважається анти патерном. Крок 1. Підготувати базовий образ який підтримує systemd. Пояснення: наприклад образ на базі повного дистрибутиву Linux. Крок 2. Написати Dockerfile з необхідними capabilities і init. Пояснення: потрібно дозволити cgroup і pid функціональність. Крок 3. Зібрати образ. Команда: docker build -t lab36-systemd . Крок 4. Запустити контейнер з опціями для systemd. Пояснення: додай --privileged і примонтуй cgroup файлові системи. Крок 5. Перевірити що systemd справді запустився. Команда: ps aux всередині контейнера Пояснення: має бути процес pid 1 systemd. Крок 6. Спробувати запустити службову одиницю всередині контейнера. Пояснення: наприклад невеликий демон який пише у лог. Крок 7. Оцінити складність такого підходу. Пояснення: уважно переглянь скільки привілеїв і монтованих ресурсів потрібні. Крок 8. Порівняти це з підходом одна служба один процес. Пояснення: у класичному сценарії контейнер запускає лише один додаток. Крок 9. Зробити висновки щодо безпеки і підтримуваності. Пояснення: контейнери з systemd схожі на віртуальні машини але без їх ізоляції. Крок 10. Міні звіт. Завдання: опиши коли тобі дійсно може знадобитися systemd у контейнері і які ризики це несе.