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

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

Docker Лабораторна 59: Стан бази у контейнері

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

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

Тема: Dev проти prod бази даних у контейнерах

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

Мета: зрозуміти чим відрізняється використання контейнеризованої бази у dev і prod.



Крок 1. У dev запустити базу у контейнері з томом.

Команда: docker run -d --name db59 -e POSTGRES_PASSWORD=devpass -v db59-data:/var/lib/postgresql/data postgres



Крок 2. Ініціалізувати тестову схему.

Пояснення: створити таблиці і залити тестові дані.



Крок 3. Перевірити що дані зберігаються у томі після перезапуску контейнера.

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



Крок 4. Змоделювати прод середовище де база живе на окремому кластері.

Пояснення: замість контейнера використовуй змінні DB_HOST DB_PORT.



Крок 5. Налаштувати застосунок щоб він міг працювати з обома варіантами.

Пояснення: конфіг має переключатися через env перемикач.



Крок 6. Вказати у документації що контейнеризована база дозволена тільки для dev.

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



Крок 7. Продумати як робити бекапи у dev стенді.

Пояснення: використати docker exec з pg_dump або аналогічні інструменти.



Крок 8. Порівняти ризики втрати даних у dev контейнері і на прод кластері.

Пояснення: різні вимоги до відмовостійкості і відтворення.



Крок 9. Сформулювати правила використання контейнерів для stateful сервісів.

Пояснення: де можна їх використовувати а де краще окремий кластер.



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

Завдання: опиши конкретну схему підключення твого застосунку до dev і prod баз з урахуванням Docker.