Выбор ответа Middle Образы и слои обновлено

Запись в файл из слоя образа

Вопрос

Контейнер меняет файл /etc/nginx/nginx.conf, который пришёл из слоя образа. Что происходит?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Файл копируется в записываемый слой контейнера и меняется там (copy-on-write). Слои образа только для чтения.

Варианты ответа

  1. Файл меняется прямо в слое образа, и изменения увидят все контейнеры из него
  2. Файл копируется в записываемый слой контейнера и меняется там (copy-on-write)правильный ответ
  3. Запись запрещена: слои образа read-only, и контейнер получит ошибку EROFS
  4. Docker создаёт новый образ с изменённым файлом и переключает контейнер на него

Разбор

Слои образа только для чтения. OverlayFS при первой записи копирует файл в верхний записываемый слой контейнера (copy-up), дальше изменения живут там и пропадут при удалении контейнера. Ошибка read-only бывает, только если контейнер запущен с --read-only. Новый образ появится лишь при docker commit или сборке.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.