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
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.
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 filemongod.conf
in esso.
'-f' restituisce l'errore' identificatore stenografico sconosciuto: 'f' in -f Vedere 'finestra mobile start --help'. –
Hai usato 'finestra mobile'? l'errore mostra come si usa effettivamente la finestra di avvio. @AvindraGoolcharan –
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'
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
è possibile mappare i file con il flag '-v'? – ZuzEL
sì, è possibile –