← До списку лабораторних по Docker
Повний опис / сценарій лабораторної:
Мета: навчитися забезпечувати коректне завершення застосунку при docker stop. Крок 1. Написати простий застосунок який ловить сигнали. Пояснення: наприклад скрипт на Python або Shell який логуватиме отриманий сигнал. Крок 2. Створити Dockerfile для цього застосунку. Пояснення: важливо щоб основний процес був pid 1. Крок 3. Запустити контейнер у фоні. Команда: docker run -d --name lab64 app-image Крок 4. Подивитися стандартний таймаут docker stop. Пояснення: за замовчуванням приблизно 10 секунд до надсилання SIGKILL. Крок 5. Зупинити контейнер і дивитися логи. Команда: docker stop lab64; docker logs lab64 Пояснення: переконайся що процес побачив SIGTERM і коректно завершився. Крок 6. Знову запустити контейнер з іншим таймаутом. Команда: docker run -d --name lab64b --stop-timeout=3 app-image Пояснення: тепер у застосунку менше часу на завершення. Крок 7. Змоделювати довге завершення. Пояснення: додай у код штучну затримку перед виходом. Крок 8. Перевірити що при занадто довгому завершенні Docker надішле SIGKILL. Пояснення: подивися логи і час зупинки. Крок 9. Задокументувати вимоги до graceful shutdown для свого сервісу. Пояснення: скільки часу потрібно щоб завершити активні запити і зберегти стан. Крок 10. Міні звіт. Завдання: опиши як некоректне завершення контейнера може вплинути на черги задач або транзакції.