sql >> Databáze >  >> NoSQL >> MongoDB

Kontejner Windows Docker mongo nefunguje s připojením svazku

Chcete-li to obejít, můžete použít nástroj jako rsync přesunout soubory db do mapovaného adresáře, když je Mongo spuštěno. Základní chyba souvisí s latencí mezi namapovaným svazkem Windows a cestou vazby v kontejneru. Přenesením práce na rsync se oddělí latence od požadavků Mongo na běhové prostředí.

Příklad

Vytvořte základní Dockerfile takhle:

FROM mongo:latest

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

ADD init.sh /init.sh

Kde init.sh je:

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

Poté při spouštění kontejneru začněte s ./init.sh jako váš ENTRYPOINT .




  1. Dotaz na podobné pole v MongoDB

  2. Událost na klíč vyprší

  3. Oprava „název indexu musí být řetězec“ při odstraňování více indexů v MongoDB

  4. Jaký typ mapování zvolit pro asociativní pole? Doktrína ODM