コンテナの/data/db
ディレクトリをローカルホストにリンクする方法があります。しかし、構成については何も見つかりません。 /etc/mongo.conf
をローカルファイルシステムの何かにリンクする方法。または、他のアプローチが使用される場合があります。あなたの経験を共有してください。
これを使用してdocker containerを実行すると:
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
はホストのmongoフォルダーです。
/data/db
は、Dockerコンテナー内のフォルダーです。
私はmongodb 3.4公式dockerイメージを使用しています。 mongodはデフォルトでは設定ファイルを読み取らないため、これが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
-dを削除すると、コンテナの初期化が表示されます
Docker-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'
何らかの理由で、MongoDbをVERSION:3.0.1で使用する必要があります
現在:2016-09-13 17:42:06
それが私が見つけたものです:
#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 "$@"
fi
if [ "$1" = 'mongod' ]; then
chown -R mongodb /data/db
numa='numactl --interleave=all'
if $numa true &> /dev/null; then
set -- $numa "$@"
fi
exec gosu mongodb "$@"
fi
exec "$@"
Mongodサービスを開始するには2つの方法があることがわかりました。私が試していること:
docker run --name mongo -d -v your/Host/dir:/container/dir mongo:3.0.1 -f /container/dir/mongod.conf
最後の-f
はmongodパラメーターです。代わりに--config
を使用することもできます。
your/Host/dir
などのパスが存在し、その中にファイルmongod.conf
があることを確認してください。
docker run
コマンドでmongoの構成を指定するために使用するコマンドを知りたいだけです。
最初に、-v
でボリュームフラグを指定して、ホストからコンテナにファイルまたはディレクトリをマッピングします。したがって、/home/ubuntu/
に設定ファイルがあり、コンテナの/etc/
フォルダー内に配置する場合、次のように指定します。
-v /home/ubuntu/mongod.conf:/etc/mongod.conf
次に、mongoのコマンドを指定して、イメージの後に次のように構成ファイルを読み取ります。
mongo -f /etc/mongod.conf
すべてをまとめると、次のようになります。
docker run -d --net="Host" --name mongo-Host -v /home/ubuntu/mongod.conf:/etc/mongod.conf mongo -f /etc/mongod.conf