2016-05-06 8 views
7

Es gibt eine Möglichkeit, das Verzeichnis /data/db des Containers mit Ihrem localhost zu verknüpfen. Aber ich kann nichts über Konfiguration finden. Wie verbindet man /etc/mongo.conf mit irgendetwas aus meinem lokalen Dateisystem. Oder vielleicht wird ein anderer Ansatz verwendet. Bitte teilen Sie Ihre Erfahrung.Docker mongodb Konfigurationsdatei

Antwort

8

Wenn Sie Docker Container mit diesem Lauf:

docker run -d -v /var/lib/mongo:/data/db -v /home/user/mongo.conf:/etc/mongo.conf -p port:port image_name 

/var/lib/mongo ist ein Mongo Ordner des Hosts.

/data/db ist ein Ordner im Docker Container.

+0

ist es möglich, Dateien mit '-v' Flag zu mappen? – ZuzEL

+0

Ja, es ist möglich –

1

Aus irgendeinem Grund, den ich MongoDB mit VERSION verwenden sollte: 3.0.1

Jetzt: 2016-09-13 17:42:06


Das ist, was ich gefunden habe:

#first step: run mongo 3.0.1 without conf 
docker run --name testmongo -p 27017:27017 -d mongo:3.0.1 

#sec step: 
docker exec -it testmongo cat /entrypoint.sh                       

#!/bin/bash 
set -e 

if [ "${1:0:1}" = '-' ]; then 
    set -- mongod "[email protected]" 
fi 

if [ "$1" = 'mongod' ]; then 
    chown -R mongodb /data/db 

    numa='numactl --interleave=all' 
    if $numa true &> /dev/null; then 
     set -- $numa "[email protected]" 
    fi 

    exec gosu mongodb "[email protected]" 
fi 

exec "[email protected]" 

Ich finde, dass es zwei Möglichkeiten gibt, einen mongod-Dienst zu starten. Was ich versuche:

docker run --name mongo -d -v your/host/dir:/container/dir mongo:3.0.1 -f /container/dir/mongod.conf 
  • der letzte -f ist der mongod Parameter können Sie auch --config stattdessen verwenden.

  • stellen Sie sicher, dass der Pfad wie your/host/dir existiert und die Datei mongod.conf darin.

+0

'-f' gibt den Fehler 'unbekanntes Kurzzeichen flag:' f 'in -f Siehe' docker start --help'.' –

+0

Haben Sie' docker run' verwendet? Der Fehler zeigt sich in der Tat so, als ob Sie den 'Docker-Start' verwenden. @AvindraGoolcharan –

7

Ich benutze die mongodb 3.4 offiziellen Docker Bild. Da die mongod keine Konfigurationsdatei standardmäßig lesen, das ist, wie ich die mongod Service

docker run -d --name mongodb-test -p 37017:27017 \ 
-v /home/sa/data/mongod.conf:/etc/mongod.conf \ 
-v /home/sa/data/db:/data/db mongo --config /etc/mongod.conf 

Entfernen starten -d Sie die Initialisierung des

Mit einem Docker-compose.yml Behälter zeigen :

version: '3' 
services: 
mongodb_server: 
    container_name: mongodb_server 
    image: mongo:3.4 
    env_file: './dev.env' 
    command: 
     - '--auth' 
     - '-f' 
     - '/etc/mongo.conf' 
    volumes: 
     - '/home/sa/data/mongod.conf:/etc/mongod.conf' 
     - '/home/sa/data/db:/data/db' 
    ports: 
     - '37017:27017' 
0

ich nur den Befehl wissen, können Sie angeben, eine Config für mongo durch den docker run Befehl wollte.

Zuerst möchten Sie das Volume-Flag mit -v angeben, um eine Datei oder ein Verzeichnis vom Host zum Container zuzuordnen.Also, wenn Sie eine Konfigurationsdatei auf /home/ubuntu/ gelegen haben und wollten es im /etc/ Ordner des Behälters platzieren würden Sie es mit dem folgenden angeben:

-v /home/ubuntu/mongod.conf:/etc/mongod.conf

Dann den Befehl angeben, für Mongo die Config-Datei zu lesen wie so nach dem Bild:

:

mongo -f /etc/mongod.conf

Wenn Sie es alle zusammen, werden Sie so etwas wie dieses erhalten

Verwandte Themen