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

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

Docker Лабораторна 57: Reload без простою

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

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

Тема: Zero-downtime reload конфігурації

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

Мета: навчитися оновлювати конфіг сервісу у контейнері без повної зупинки.



Крок 1. Підготувати nginx конфіг з простим сайтом.

Пояснення: зберігай конфіг на хості у каталозі conf57.



Крок 2. Запустити nginx контейнер з bind mount конфігурації.

Команда: docker run -d --name nginx57 -p 8087:80 -v $(pwd)/conf57:/etc/nginx/conf.d nginx



Крок 3. Перевірити що сайт працює.

Команда: curl http://localhost:8087



Крок 4. Змінити конфіг або сторінку на хості.

Пояснення: додай новий заголовок або текст.



Крок 5. Перевірити конфігурацію всередині контейнера.

Команда: docker exec nginx57 nginx -t

Пояснення: переконайся що немає синтаксичних помилок.



Крок 6. Надіслати сигнал reload до nginx.

Команда: docker exec nginx57 nginx -s reload

Пояснення: nginx перечитає конфіг без зупинки процесу.



Крок 7. Паралельно виконати кілька curl запитів під час reload.

Пояснення: переконайся що немає помітного простою.



Крок 8. Оцінити чи всі сервіси у твоєму стеку підтримують graceful reload.

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



Крок 9. Задокументувати стандартну процедуру зміни конфігів.

Пояснення: включаючи перевірку синтаксису і rollback план.



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

Завдання: опиши як би ти організував zero downtime оновлення конфігів у prod для кількох контейнерів одночасно.