Возник вопрос по контейнерам в linux. Контейнер - это некая служба запущенная в изолированной среде. Сам контейнер получается методом развертывания его из образа (image). При завершении работы контейнера, данные внутри него теряются и запустив его снова мы получим первоначальный контейнер из образа. Если нам нужно, чтобы данные, которые контейнер создаст в процессе работы, не терялись, нам нужно подключить к нему раздел (volume) и тогда контейнер работая с файлами может сохранить их на этом разделе и они не исчезнут при завершении работы контейнера. В контейнер можно передать некоторые параметры для приложения в нем, путем указания параметров окружения при развертывании. При этом мы ограничены параметрами в образе, которые можно передать. Вопрос, мне надо создать контейнер, в котором изначально будет приложение с нужным мне конфигом и дополнительными файлами. Я так понимаю, что правильным в этом случае будет собрать новый образ из некого дефолтного, зашив в него все необходимое (конфиг, доп файлы). Таким образом при развертывании контейнера из этого нового образа, у контейнера будет все необходимое для работы и мне не надо будет передавать в него что-то, что нельзя передать при развертывании.
Простой пример: мне нужен сервис nginx определенным образом сконфигурированный и имеющий файлы с сертификатами. Я беру штатный image nginx, на основе него собираю новый кастомный image и уже с него развертываю контейнеры?
Я правильно понял концепцию? На практике оно как-то так должно быть?