web-dev-qa-db-ja.com

Docker mongodb構成ファイル

コンテナの/data/dbディレクトリをローカルホストにリンクする方法があります。しかし、構成については何も見つかりません。 /etc/mongo.confをローカルファイルシステムの何かにリンクする方法。または、他のアプローチが使用される場合があります。あなたの経験を共有してください。

15
ZuzEL

これを使用して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コンテナー内のフォルダーです。

15

私は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'
17
Argeo P.

何らかの理由で、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があることを確認してください。

2
Vi.Ci

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
1
Stunner