本当に簡単Dockerfile:起動時にDockerコンテナに新しいMongodbを作成するには?
FROM mongo:3.2.10
#create DB directory
RUN mkdir -p /data/db
EXPOSE 27017
CMD ["mongod"]
私は自動的に"CBDB"
と呼ばれるDBを作成するコンテナを実行します。手動でmongoシェルを実行したくない場合は、新しいDBを自動的に作成します。
ありがとうございます!
本当に簡単Dockerfile:起動時にDockerコンテナに新しいMongodbを作成するには?
FROM mongo:3.2.10
#create DB directory
RUN mkdir -p /data/db
EXPOSE 27017
CMD ["mongod"]
私は自動的に"CBDB"
と呼ばれるDBを作成するコンテナを実行します。手動でmongoシェルを実行したくない場合は、新しいDBを自動的に作成します。
ありがとうございます!
mongoをデーモンとして実行し、実行するスクリプトをエントリポイントに書くことができます。簡単な例として
https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/
、このDockerfileとエントリポイントを使用します。エントリポイントで
FROM mongo:3.2.10
#create DB directory
RUN mkdir -p /data/db
EXPOSE 27017
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["./entrypoint.sh"]
を、あなたは、データベースを作成するために、デーモンとしてモンゴを使用し、1つのライナーを実行することができますし、コレクション。コンテナが停止しますしないことを保証するために、テール(またはsupervisordのようなもの)を使用してください:
#!/bin/bash
mongod --fork --logpath /var/log/mongo.log
mongo --eval "db = db.getSiblingDB('new_db'); db.createCollection('new_collection');"
tail -f /var/log/mongo.log
返信いただきありがとうございます! mogodプロセスが起動した後、どのようにmongoをデーモンとして実行するのですか? – craigb85
私の回答に例を追加しました。mongodプロセスをデーモンモードで直接起動する必要があります。 –
あなたは 'mongo'イメージを継承している、あなたは、'は、mkdirデータ/再びさらすDBへも必要はありません。親画像と同じポート。 – Marcs