Выбор ответа Senior Сети и тома обновлено

Пустой том и bind mount поверх данных образа

Вопрос

В образе по пути /app/static лежат файлы. Что увидит контейнер в этом каталоге, если подключить к нему (а) новый пустой именованный том, (б) пустой каталог хоста через bind mount?

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

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

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

Коротко

Правильный ответ: (а) файлы образа, их копирует Docker; (б) пусто, bind mount их перекрывает. При первом подключении пустого именованного тома Docker заполняет его содержимым образа по этому пути.

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

  1. (а) пусто, (б) пусто: любое монтирование перекрывает каталог образа
  2. (а) файлы образа, (б) файлы образа: Docker копирует их при монтировании
  3. (а) файлы образа, их копирует Docker; (б) пусто, bind mount их перекрываетправильный ответ
  4. (а) пусто, том новый; (б) файлы образа: Docker копирует их на хост

Разбор

При первом подключении пустого именованного тома Docker заполняет его содержимым образа по этому пути. Bind mount ничего не копирует, а просто показывает каталог хоста поверх, скрывая файлы образа. Отсюда частая ошибка: смонтировали пустую папку хоста в каталог со статикой или конфигами образа, и приложение их «потеряло».

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

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