MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да настроите обема на данните на docker mongo

Опитайте и проверете регистрационните файлове на docker, за да видите какво се е случвало, когато контейнерът е спрял, и преминете в режим „Съществуващ“.

Вижте също дали определянето на пълния път за тома би помогнало:

docker run -p 27017:27017 -v /home/<user>/data:/data/db  ...

ОП добавя:

docker logs mongo 
exception in initAndListen: 98 
Unable to create/open lock file: /data/db/mongod.lock 
errno:13 Permission denied 
Is a mongod instance already running?
terminating 2016-02-15T06:19:17.638+0000 
I CONTROL [initandlisten] dbexit: rc: 100 

errno:13 е въпросът за 30.

Този коментар добавя:

Това е проблем със собствеността/разрешението на файла (не е свързан с това изображение на docker), или чрез използване на boot2docker с VB, или на скитническа кутия с VB.

Въпреки това успях да хакна собствеността, като премонтирах споделения обем /Users в boot2docker на uid 999 и gid 999 (които използва mongo docker image) и започна:

$ boot2docker ssh
$ sudo umount /Users
$ sudo mount -t vboxsf -o uid=999,gid=999 Users /Users

Но... mongod се срива поради неподдържан тип файлова система (mmap не работи на vboxsf)

Така че действителното решение би било да опитате DVC:Data Volume Container , защото точно сега документът на mongodb споменава:

MongoDB изисква файлова система, която поддържа fsync() в директории.
Например, споделените папки на HGFS и Virtual Box не поддържат тази операция.

И така:

монтирането към OSX няма да работи за MongoDB поради начина, по който работят споделените папки на virtualbox.

За DVC (Data Volume Container), опитайте docker volume create :

docker volume create mongodbdata

След това го използвайте като:

docker run -p 27017:27017 -v mongodbdata:/data/db  ...    

И вижте дали това работи по-добре.

Както споменах в коментарите:

docker volume inspect mongodbdata (вижте docker volume inspect ) ще ви даде своя път (който след това можете да архивирате, ако имате нужда)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Проверка дали съществува индекс в mongodb

  2. MongoDB $in оператор за заявка

  3. Как да активирам удостоверяване на MongoDB чрез Docker?

  4. Поправете „името на индекса трябва да бъде низ“ при отпадане на множество индекси в MongoDB

  5. Импортирайте данни в MongoDB от JSON файл с помощта на Java