Установка ENV
в Dockerfile обновляет конфигурацию изображения (это некоторые метаданные json, хранящиеся вместе с изображением).При запуске контейнера метаданные изображения используются для заполнения настроек контейнера по умолчанию.Поскольку они являются значениями по умолчанию, вы можете переопределить переменные по мере необходимости из командной строки docker run
или в файле compose.Поскольку вы можете переопределить их во время выполнения, эти значения на самом деле не «запекаются» в нечто подобное изображению, если вы не используете их в команде RUN
во время сборки образа.
Неизменяемость изображений является ссылкой наслои изображения.Как только слой файловой системы создан для изображения, вы не можете изменить этот слой из Docker.Вы можете расширить слой другим слоем (заменяя или удаляя содержимое из предыдущего слоя).И вы можете создать новый слой и указать свое изображение на этот новый набор слоев.Однако содержимое слоя, на которое ссылается контрольная сумма sha256, не изменяется контейнером или другими этапами сборки, что позволяет разделять слои между несколькими изображениями и контейнерами.