Docker mongodb - добавить базу данных на диск в контейнер

Я запускаю Docker в Windows, и у меня есть база данных с некоторыми записями на диске в C:\data\db.

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

Я старался: docker run -p 27017:27017 -v //c/data/db:/data/db --name mongodb devops-mongodb

В моем dockerfile у меня есть:

RUN mkdir -p /data/db
VOLUME /data/db

Но это не добавляет мою текущую базу данных на диске в контейнер. Он создает новый каталог / data / db и сохраняет данные, которые я добавляю в него.

Документы здесь https://docs.docker.com/userguide/dockervolumes/ разделе "Монтирование каталога хоста как тома данных" специально указали мне выполнить -v //c/data/db:/data/db, но это не работает

Есть идеи?

1 ответ

Решение

Вы используете Boot2Docker (который работает внутри виртуальной машины). Boot2Docker использует гостевые дополнения VirtualBox, чтобы сделать каталоги на вашем компьютере с Windows доступными для Docker, работающего на виртуальной машине.

По умолчанию только C:\Users каталог (в Windows) или /Users/ каталог (в OS X) используется совместно с виртуальной машиной. Все, что находится вне этих каталогов, не передается виртуальной машине, в результате чего Docker создает пустой каталог в указанном месте для тома.

Поделиться каталогами снаружи C:\Users\ с виртуальной машиной вы должны вручную настроить Boot2Docker, чтобы поделиться ими. Вы можете найти шаги, необходимые в разделе добавления гостя VirtualBox в README;

Если требуется какой-либо другой путь или общий ресурс, его можно смонтировать во время выполнения, выполнив что-то вроде:

$ mount -t vboxsf -o uid=1000,gid=50 your-other-share-name /some/mount/location

Также важно отметить, что в будущем планируется, чтобы любой общий ресурс, созданный в VirtualBox с включенным флагом "automount", был подключен во время загрузки в каталоге с именем общего ресурса (т. Е. Ресурс с именем home/jsmith будет автоматически смонтирован в /home/jsmith).

Помните, что использование гостевых дополнений VirtualBox очень плохо влияет на производительность (чтение / запись на том будет очень медленной). Что может быть хорошо для развития, но следует использовать с осторожностью.

Другие вопросы по тегам