sql >> Databasteknik >  >> NoSQL >> MongoDB

Windows Docker mongo-behållare fungerar inte med volymfäste

För att komma runt detta kan du använda ett verktyg som rsync för att flytta db-filerna till mappad katalog medan Mongo körs. Den underliggande buggen har att göra med latens mellan den mappade Windows-volymen och den bindningsvägen i behållaren. Att ladda ner arbetet till rsync frikopplar latensen från Mongos körtidskrav.

Exempel

Skapa en grundläggande Dockerfile så här:

FROM mongo:latest

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

ADD init.sh /init.sh

Där init.sh är:

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

Sedan, när du startar behållaren, börjar du bara med ./init.sh som din ENTRYPOINT .




  1. ClusterControl körtidskonfigurationsalternativ

  2. Redis replikeringskonfiguration

  3. Slumpmässig sorteringsordning

  4. Projekt med Match sammantaget fungerar inte i mongodb