sql >> Database teknologi >  >> NoSQL >> MongoDB

Windows Docker mongo-beholder virker ikke med volumenmontering

For at komme uden om dette, kan du bruge et værktøj som rsync for at flytte db-filerne til mappet mappe, mens Mongo kører. Den underliggende fejl har at gøre med latens mellem det Windows-kortlagte volumen og den bindingssti i containeren. Aflastning af arbejdet til rsync afkobler latensen fra Mongos kørselskrav.

Eksempel

Opret en grundlæggende Dockerfile sådan her:

FROM mongo:latest

RUN apt-get update && \ 
    apt-get install -y \
        rsync

ADD init.sh /init.sh

Hvor init.sh er:

#!/bin/bash

migrate_db() {
  while true
  do
    rsync -avh /data/db/* /data/mapped-db
    sleep 5
  done
}

migrate_db &

#Execute a command
mongod --smallfiles --logpath=/dev/null --verbose &

#Wait
wait $!

Derefter, når du starter containeren, skal du bare starte med ./init.sh som dit ENTRYPOINT .




  1. MongoDB $slice (indlejret array-paging)

  2. Mongodb tidsstempel er meget unøjagtigt - mongoose

  3. opdatereMange baseret på andet felt i mongodb

  4. Filskrivningsoperationer i mongo script?