docker に mongodb をデプロイすると、データ ファイルが mac (私のローカル マシン) に永続化されます。データ ファイルのディレクトリが docker に配置されていれば、問題はないことがテストでわかりました。 docker -v コマンドを使用してマウントされます。次のエラーがフォルダにポップアップ表示されます:
docker 起動コマンド:
リーリーroot@aba9b0873a23:/# mongod --dbpath=/data/db
2017-01-05T08:40:32.211 0000 I CONTROL [initandlisten] MongoDB 開始中 : pid=15 port=27017 dbpath=/data /db 64 ビットhost=aba9b0873a23
2017-01-05T08:40:32.211 0000 I CONTROL [initandlisten] db バージョン v3.4.1
2017-01-05T08:40:32.211 0000 I CONTROL [initandlisten] git バージョン: 5e103c4f5583e2566a45d740225dc250baacfbd7
2017-01-05T08:40:32.211 0000 I CONTROL [initandlisten] OpenSSL バージョン: OpenSSL 1.0.2g 3 月 1 日2016
2017-01-05T08:40:32.211 0000 I CONTROL [inindlisten] アロケーター: tcmalloc
2017-01-05T08:40:32.211 0000 I CONTROL [initandlisten] モジュール:なし
2017-01-05T08:40:32.211 0000 I CONTROL [initandlisten] ビルド環境:
2017-01-05T08:40:32.211 0000 I CONTROL [initandlisten] distmod: ubuntu1404
2017-01-05T08:40:32.211 0000 I CONTROL [initandlisten] distarch: x86_64
2017-01-05T08:40:32.211 0000 I CONTROL [initandlisten] target_arch: x86_64
2017-01-05T08:40:32.211 0000 I CONTROL [inindlisten] オプション: { storage: { dbPath: "/data/db" } }
2017-01-05T08:40:32.218 0000 I ストレージ[initandlisten] Wiredtiger_open 設定: create、cache_size=489M、session_max=20000、eviction=(threads_max=4)、config_base=false、statistics=(fast)、log=(enabled=true、archive=true、path=journal、 compressor=snappy)、file_manager=(close_idle_time=100000)、checkpoint=(wait=60、log_size=2GB)、statistics_log=(wait=0)、
2017-01-05T08:40:32.229 0000 E ストレージ [initandlisten] WiredTiger エラー (22) 1483605632:229032、接続: /data/db/: ディレクトリ同期: fdatasync: 引数が無効です
2017-01-05T08:40:32.230 0000 I - [initandlisten] 致命的アサーション 28561 src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 264
2017-01-05T08:40:32.230 0000 I - [initandlisten]
*fastert() の失敗後に中止します
私のローカルマシン: Mac、Docker システム: ubuntu@14.04
MacBook 上で Docker を直接実行していますか? Volume に関する公式ドキュメントには次のように書かれています:
ファイル共有
Mac 上のどのディレクトリをコンテナと共有するかを決定できます。
ディレクトリを追加 - + をクリックして、追加するディレクトリに移動します。
「適用して再起動」をクリックして、Docker のバインド マウント (-v) 機能を使用してコンテナーでディレクトリを使用できるようにします。
は、ボリュームを使用する前に Docker を構成する必要があることを意味します
リファレンス:
Docker for Mac を使ってみる