MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara mengatur volume data docker mongo

Coba dan periksa log buruh pelabuhan untuk melihat apa yang terjadi saat penampung berhenti dan masuk ke mode "Ada".

Lihat juga apakah menentukan jalur lengkap untuk volume akan membantu:

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

OP menambahkan:

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 adalah tentang masalah 30.

Komentar ini menambahkan:

Ini adalah masalah kepemilikan/izin file (tidak terkait dengan gambar buruh pelabuhan ini), baik menggunakan boot2docker dengan VB atau kotak gelandangan dengan VB.

Namun demikian, saya berhasil meretas kepemilikan, memasang ulang /Users shared volume di dalam boot2docker ke uid 999 dan gid 999 (yang digunakan oleh gambar mongo docker) dan memulainya:

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

Tapi... mongod lumpuh karena jenis sistem file tidak didukung (mmap tidak berfungsi di vboxsf)

Jadi solusi sebenarnya adalah mencoba DVC:Data Volume Container , karena sekarang dokumen mongodb menyebutkan:

MongoDB membutuhkan sistem file yang mendukung fsync() pada direktori.
Misalnya, folder bersama HGFS dan Virtual Box tidak mendukung operasi ini.

Jadi:

pemasangan ke OSX tidak akan berfungsi untuk MongoDB karena cara kerja folder bersama virtualbox.

Untuk DVC (Data Volume Container), coba docker volume create :

docker volume create mongodbdata

Kemudian gunakan sebagai:

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

Dan lihat apakah itu bekerja lebih baik.

Seperti yang saya sebutkan di komentar:

docker volume inspect mongodbdata (lihat docker volume inspect ) akan memberi Anda jalurnya (yang kemudian dapat Anda cadangkan jika perlu)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apakah ada cara untuk memperbarui dua koleksi secara atom di MongoDB?

  2. Mongodb temukan di dalam sub array

  3. Mongorestore, dari server produksi meteor ke lokal

  4. mongoengine - Kueri pada ListField dari EmbeddedDocumentField

  5. MongoDB $slice