sql >> Database >  >> NoSQL >> MongoDB

Windows Docker mongo container werkt niet met volume mount

Om dit te omzeilen, kun je een tool gebruiken zoals rsync om de db-bestanden naar de toegewezen map te verplaatsen terwijl Mongo actief is. De onderliggende bug heeft te maken met latentie tussen het door Windows toegewezen volume en dat bindpad binnen de container. Door het werk naar rsync te verplaatsen, wordt de latentie losgekoppeld van de runtime-vereisten van Mongo.

Voorbeeld

Maak een basis Dockerfile zoals dit:

FROM mongo:latest

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

ADD init.sh /init.sh

Waar init.sh is:

#!/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 $!

Begin vervolgens bij het starten van de container met ./init.sh als uw ENTRYPOINT .




  1. Mongodb - Index met meerdere tekst:patroon van indexsleutels te groot foutcode 67

  2. Gesorteerde lijsten in Redis gebruiken

  3. Mongodb instelling uniek veld

  4. Externe toegang van Golang en MongoDb mislukt (server heeft fout geretourneerd bij SASL-verificatiestap:verificatie mislukt.)