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

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

Docker Лабораторна 74: systemd unit для контейнера

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

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

Тема: Звʼязка Docker і systemd сервісів на хості

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

Мета: навчитися описувати Docker сервіс як systemd unit щоб інтегрувати його у загальне керування службами.



Крок 1. Написати простий Docker образ веб сервісу.

Пояснення: наприклад nginx з власною конфігурацією.



Крок 2. Створити systemd unit файл /etc/systemd/system/web74.service.

Пояснення: у ExecStart використовуй docker run з потрібними параметрами.



Крок 3. Додати ExecStop для акуратної зупинки.

Пояснення: наприклад docker stop web74.



Крок 4. Установити параметр Restart=always.

Пояснення: щоб systemd перезапускав контейнер при падінні.



Крок 5. Виконати systemctl daemon-reload.



Крок 6. Запустити сервіс і перевірити статус.

Команда: systemctl start web74; systemctl status web74



Крок 7. Переконатися що контейнер дійсно створений.

Команда: docker ps



Крок 8. Перевірити автоматичний старт сервісу при перезавантаженні хоста.

Пояснення: увімкни сервіс через systemctl enable і перезавантаж машину.



Крок 9. Обговорити плюси і мінуси такого способу у порівнянні з чистим docker compose.

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



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

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