2016-05-06 30 views
7

C'è un modo per collegare la directory /data/db del contenitore all'host locale. Ma non riesco a trovare nulla sulla configurazione. Come collegare /etc/mongo.conf a qualsiasi cosa dal mio file system locale. O forse viene usato un altro approccio. Per favore condividi la tua esperienza.Docker mongodb config file

risposta

8

Quando si esegue contenitore finestra mobile di utilizzare questo:

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 è la cartella mongo di un host.

/data/db è una cartella nel contenitore mobile.

+0

è possibile mappare i file con il flag '-v'? – ZuzEL

+0

sì, è possibile –

1

Per qualche motivo dovrei usare MongoDb con VERSIONE: 3.0.1

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


Ecco cosa ho trovato:

#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]" 

Trovo che ci siano due modi per avviare un servizio mongod. quello che cerco:

docker run --name mongo -d -v your/host/dir:/container/dir mongo:3.0.1 -f /container/dir/mongod.conf 
  • l'ultimo -f è il parametro mongod, è anche possibile utilizzare --config invece.

  • verificare che il percorso come your/host/dir esista e il file mongod.conf in esso.

+0

'-f' restituisce l'errore' identificatore stenografico sconosciuto: 'f' in -f Vedere 'finestra mobile start --help'. –

+0

Hai usato 'finestra mobile'? l'errore mostra come si usa effettivamente la finestra di avvio. @AvindraGoolcharan –

7

Sto utilizzando l'immagine docker ufficiale di mongodb 3.4. Dal momento che il mongod non legge un file di configurazione di default, questo è il modo di iniziare il servizio mongod

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 

rimozione -d vi mostrerà l'inizializzazione del contenitore

Utilizzando uno scaricatore di porto-compose.yml :

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

ho semplicemente voluto sapere il comando utilizzato per specificare una configurazione per Mongo attraverso il comando docker run.

Per prima cosa si desidera specificare il flag del volume con -v per mappare un file o una directory dall'host al contenitore.Quindi, se si ha un file di configurazione situato a /home/ubuntu/ e voleva posizionarlo all'interno della cartella /etc/ del contenitore è necessario specificare con il seguente:

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

quindi specificare il comando per la Mongo di leggere il file di configurazione dopo che l'immagine in questo modo:

mongo -f /etc/mongod.conf

Se si mette tutto insieme, si otterrà qualcosa di simile:

docker run -d --net="host" --name mongo-host -v /home/ubuntu/mongod.conf:/etc/mongod.conf mongo -f /etc/mongod.conf 
Problemi correlati