Чому краще не зберігати дані всередині контейнера?
Тому що контейнер - тимчасовий і легко замінний. Якщо зберігати дані всередині нього, вони зникнуть при перестворенні чи оновленні контейнера.
3 причини по-junior'ськи
- Контейнери не вічні Контейнер можна зупинити, видалити чи перестворити при деплої. Його файлова система - тимчасова, тому дані легко втратити.
- Неможливо масштабувати Якщо застосунок запущений у кількох контейнерах, дані всередині кожного будуть різними. Потрібна спільна точка зберігання (volume, база даних, хмара).
- Немає нормального бекапу З контейнером незручно робити резервні копії, переносити і відновлювати дані.
Як правильно
Дані виносять у:
- volume (docker volume)
- bind-mount (папка хоста)
- БД поза контейнером
- хмарне сховище
Підсумок: контейнер легко замінити, а дані повинні жити довше за контейнер - тому їх зберігають зовні, а не всередині.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.