Как сохранить конкретный именованный том докера в определенном месте, не меняя значения по умолчанию?

Я хочу создать именованный том для одного из моих контейнеров.

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

Я все еще хочу, чтобы другие тома были на диске по умолчанию, только один именованный том должен находиться на другом диске.

Я не хочу использовать привязку, потому что это усложнит резервное копирование и миграцию.

Единственный вариант, который я могу придумать, - это вручную переместить том после его создания (пока контейнер остановлен) и создать символическую ссылку из исходного местоположения в /var/lib/docker/... в новое местоположение на другом жестком диске. Тем не менее, это очень руководство, что наводит меня на мысль, что должен быть способ лучше.

Какой рекомендуемый способ добиться этого?


person springloaded    schedule 13.12.2017    source источник
comment
github.com/projectatomic/docker-lvm-plugin может помочь, но не уверен, насколько надежен это   -  person Matt    schedule 13.12.2017


Ответы (1)


Используйте драйвер локального тома:

docker volume create -d local -o type=none -o o=bind -o device=/host/path volname

(Взято из этого комментария на github)

person programmerq    schedule 13.12.2017
comment
Делает ли он монтировку bind типа или volume типа? Он отличается от docker run -v /host/path:/mypath ...? - person springloaded; 14.12.2017
comment
Технически все тома монтируются с привязкой. Это именованный том с использованием локального драйвера, который позволяет вам указать любой возможный тип монтирования, включая bind mounts. Это похоже на то, что вам нужно, так как вам нужен именованный том, но не привязка mount / host mount, где вы указываете расположение хоста в аргументе -v. - person programmerq; 14.12.2017