mongodbのデータベースとユーザーを初期設定をdocker-composeでやってみました
使うイメージ
image: mongo
試行錯誤の結果、
docker-compose.ymlはこんな感じ
version: '2'
services:
  mongo:
    container_name: mongo
    image: mongo
    ports:
    - "27017:27017"
    volumes:
    - ./mongo/data:/data/db
    - ./mongo/init/:/docker-entrypoint-initdb.d/
    environment:
    - MONGO_INITDB_DATABASE=fluentd
MONGO_INITDB_DATABASEは、使うデータベース名を指定します
(mongoコンテナ内の /docker-entry.point に処理が書いてあります)
./mongo/data にmongodbのデータを永続化させます
./mongo/init/init.js に初期化のスクリプトをこんな感じで
var newUsers = [
  {
        user: 'logger',
        pwd: 'password',
        roles: [
            {
                role: 'readWrite',
                db: 'fluentd'
            }
        ]
    }
];
var currentUsers = db.getUsers();
if (currentUsers.length === newUsers.length) {
    quit();
}
db.dropAllUsers();
for (var i = 0, length = newUsers.length; i < length; ++i) {
    db.createUser(newUsers[i]);
}
参考: fluentd + MongoDB でログサーバー構築 - Qiita
これで、
$ docker-compose up -d
で起動
fluentdデータベースにloggerユーザーが書き込めるようになりました
docker runでもパラメータ渡してやれば出来ますが面倒なので、composeを使いました
fluentdの裏に置くための準備でやってみました