Подключите объем хост-докера, но перезапишите содержимое контейнера

Несколько статей были чрезвычайно полезны для понимания объема и управления данными Docker. Эти два, в частности, превосходны:

Однако, я не уверен, что то, что я ищу, обсуждается. Вот мое понимание:

  • При запуске docker run -v /host/something:/container/something файлы хоста будут накладываться (но не перезаписывать) файлы контейнера в указанном месте. Контейнер больше не будет иметь доступ к местоположению предыдущих файлов, но вместо этого будет иметь доступ к файлам хоста в этом месте.
  • При определении тома в файле Docker другие контейнеры могут совместно использовать содержимое, созданное изображением/контейнером.
  • Хост также может просматривать/изменять токовый файл Dockerfile, но только после обнаружения истинной точки монтирования с помощью докерера проверить. (обычно где-то вроде /var/lib/docker/vfs/dir/cde167197ccc3e138a14f1a4f7c....). Тем не менее, это волосатый, когда Docker должен работать внутри виртуальной виртуальной машины.

Мой вопрос прост. Как можно отменить наложение, чтобы при установке тома файлы контейнера имели приоритет над файлами моего хоста?

Я хочу указать точку монтирования, где я могу легко получить доступ к файловой системе контейнера. Но, похоже, никто не задает этот вопрос. Я понимаю, что я могу использовать контейнер данных для этого, или я могу использовать проверку докеров для поиска точки монтирования, но ни одно решение не является хорошим решением в этом случае.

Ответ 1

Докер 1.10+ способ совместного использования файлов будет через том, как в docker volume create.
Это означает, что вам не нужен контейнер, предназначенный для тома данных, вы можете напрямую использовать объем данных.

Таким образом, вы можете совместно использовать и монтировать этот том в контейнере, который затем сохранит его содержимое в указанном томе.
Это больше соответствует тому, как работает контейнер: изолировать память, процессор и файловую систему от хоста: вот почему вы не можете "смонтировать тома и иметь файлы контейнеров, имеющие приоритет над файлом хоста",: , который нарушит эту изоляцию контейнера и выведет на хост его содержимое.