MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cách đặt khối lượng dữ liệu mongo của docker

Hãy thử và kiểm tra nhật ký của docker để xem điều gì đang xảy ra khi vùng chứa dừng lại và chuyển sang chế độ "Hiện có".

Ngoài ra, hãy xem việc chỉ định đường dẫn đầy đủ cho tập sách có giúp ích được gì không:

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

OP cho biết thêm:

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 là vấn đề 30 là gì.

Nhận xét này cho biết thêm:

Đó là vấn đề về quyền sở hữu / quyền đối với tệp (không liên quan đến hình ảnh docker này), sử dụng boot2docker với VB hoặc hộp vagrant với VB.

Tuy nhiên, tôi đã cố gắng hack quyền sở hữu, điều chỉnh lại khối lượng / Người dùng đã chia sẻ bên trong boot2docker thành uid 999 và gid 999 (là những gì mà hình ảnh docker mongo sử dụng) và bắt đầu:

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

Nhưng ... mongod bị treo do loại hệ thống tệp không được hỗ trợ (mmap không hoạt động trên vboxsf)

Vì vậy, giải pháp thực tế sẽ là thử một DVC:Vùng chứa khối lượng dữ liệu , bởi vì ngay bây giờ tài liệu mongodb đề cập đến:

MongoDB yêu cầu hệ thống tệp hỗ trợ fsync() trên các thư mục.
Ví dụ:các thư mục dùng chung của HGFS và Virtual Box không hỗ trợ hoạt động này.

Vì vậy:

việc gắn vào OSX sẽ không hoạt động đối với MongoDB do cách thức hoạt động của các thư mục chia sẻ hộp ảo.

Đối với DVC (Vùng chứa khối lượng dữ liệu), hãy thử docker volume create :

docker volume create mongodbdata

Sau đó, sử dụng nó như:

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

Và xem liệu điều đó có hoạt động tốt hơn không.

Như tôi đã đề cập trong phần bình luận:

Một khối lượng docker volume inspect mongodbdata (xem docker volume inspect ) sẽ cung cấp cho bạn đường dẫn của nó (sau đó bạn có thể sao lưu nếu cần)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kiến trúc ứng dụng dựa trên Mongoose

  2. Làm cách nào để lưu trữ / hiển thị các đoạn văn bằng mongodb?

  3. MongoDB $ acosh

  4. Cách cài đặt MongoDB 4.2 trên hệ thống RedHat / CentOS 7

  5. MongoDB $ dateFromParts