Docker использует bind mounts a mount --bind
, чтобы сделать тома доступными.
Bind mounts очень похожи на жесткие ссылки.Если вы жестко связываете foo
с bar
с помощью ln foo bar
, вы можете переименовать или удалить foo
, и это не повлияет на bar
, поскольку оба файла указывают на один и тот же индекс.Аналогично, если вы связываете foo
с bar
с помощью mount --bind foo bar
, перемещение или удаление foo/
не повлияет на bar/
.
Давайте рассмотрим две директории тестирования foo
и bar
:
$ mkdir foo bar
$ touch foo/FOO bar/BAR
$ ls foo/
FOO
$ ls bar/
BAR
Если мы смонтируем foo
поверх bar
, а затем переименуем foo
, bar
не изменится:
$ sudo mount --bind foo bar
$ ls bar/
FOO
$ mv foo foo.renamed
$ ls bar/
FOO