2013-08-27 16 views
9

ドッカーを使ってMongoDBをコンテナ化するのは簡単です。新しいmongodbコンテナを起動するたびに、新しい空のデータベースが取得されます。コンテナの再起動の間にMongoDBデータを永続化する方法はありますか?

データベースの内容をコンテナの再起動の間に保持するにはどうすればよいですか? -vオプションを使用してコンテナに外部ディレクトリをバインドしようとしましたが、成功しませんでした。

答えて

5

ehazlett/mongodbイメージを使用してみましたが正常に動作しました。

このイメージでは、mongoがDATA_DIR env変数を使用してデータをどこに格納するかを簡単に指定できます。あなたのイメージを変えることはあまり難しくありません。ここで

は私がやったことです:

mkdir test; docker run -v `pwd`/test:/tmp/mongo -e DATA_DIR=/tmp/mongo ehazlett/mongodb

予告-v内で`pwd`、サーバとクライアントが別のパスを持っている可能性があるとして、絶対パスを指定することが重要です。

このコマンドを使用すると、mongoをいつでも実行することができ、作成したばかりの./testディレクトリにデータベースが常に格納されます。

+0

これは、私がdocker v0.5.xのMySQL/Postgresで行ったアプローチです。 1.0のソリューションが異なるかどうかは不明です。 – amattn

+1

ありがとう、ギヨーム!出来た。私のような流行のユーザーのためのもう一つのメモ:仮想マシン上のmongoディレクトリ/迷路ディレクトリに入れないでください。mongoはそのディレクトリ内のファイルをロックすることはできず、すぐに終了します。 –

+0

これはWindowsのboot2dockerで動作しますか?私は試しましたがエラーを返しますエラー:ジャーナルファイルの空き容量が足りず、起動しません – Astronaut

関連する問題