Первая путаница у всех начинается с образа и контейнера. Образ — это неизменяемый слепок файловой системы и настроек запуска. Контейнер — процесс, запущенный из этого слепка, со своим временным слоем поверх. Из одного образа можно поднять сколько угодно контейнеров, и все они будут одинаковыми на старте.
Отсюда следует главное практическое правило: всё, что вы записали внутрь работающего контейнера, живёт до его удаления. Установленный вручную пакет, поправленный конфиг, загруженный файл исчезнут при пересоздании. Это не недоработка, а смысл конструкции — контейнер должен быть одноразовым.
Из этого же вытекает подход к отладке. Зайти внутрь и что-то поправить можно, но результат обязан переехать в описание образа или в том с данными, иначе через неделю никто не вспомнит, почему на сервере всё работает, а у коллеги нет.
Правильный вопрос при любой проблеме звучит так: это состояние должно пережить перезапуск или нет. Ответ определяет, куда его класть — в образ, в том или никуда ⚙️
Docker на Практике
@docker_practice_ru_n1k
Первая путаница у всех начинается с образа и контейнера. Образ — это неизменяемый слепок файловой системы и на
Этот пост опубликован в Telegram-канале Docker на Практике. Подписаться можно по ссылке: @docker_practice_ru_n1k.