LoginSignup
6
6

More than 5 years have passed since last update.

MacのDocker上で動くMongoDBのデータを永続化するの大変そう

Last updated at Posted at 2016-02-28

MacのDocker上で動かしたMongoDBのデータを保存しておきたいと思い、Data Volumeを使って永続化を試みましたが失敗しました。
具体的には以下の手順で/data/db以下をホストのMacのフォルダにし、データベースの中身をコンテナから切り離し、データの永続化をしようとしましたが、エラーが発生しました。

docker run --name mongo-test -v ~/workspace/mongo:/data/db -d mongo:tag

エラーメッセージ

2016-02-28T14:32:16.694+0000 I CONTROL  [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=123456789
2016-02-28T14:32:16.694+0000 I CONTROL  [initandlisten] db version v3.2.3
2016-02-28T14:32:16.694+0000 I CONTROL  [initandlisten] git version: 123456
2016-02-28T14:32:16.694+0000 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013
2016-02-28T14:32:16.694+0000 I CONTROL  [initandlisten] allocator: tcmalloc
2016-02-28T14:32:16.694+0000 I CONTROL  [initandlisten] modules: none
2016-02-28T14:32:16.694+0000 I CONTROL  [initandlisten] build environment:
2016-02-28T14:32:16.694+0000 I CONTROL  [initandlisten]     distmod: debian71
2016-02-28T14:32:16.694+0000 I CONTROL  [initandlisten]     distarch: x86_64
2016-02-28T14:32:16.694+0000 I CONTROL  [initandlisten]     target_arch: x86_64
2016-02-28T14:32:16.694+0000 I CONTROL  [initandlisten] options: {}
2016-02-28T14:32:16.699+0000 I STORAGE  [initandlisten] exception in initAndListen: 98 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
2016-02-28T14:32:16.699+0000 I CONTROL  [initandlisten] dbexit:  rc: 100

公式のイメージに手を加えていないですし、一個しか動いていないのにすでに使用中というメッセージが出ます。

調べたところ、MongoDBはVirtualBoxの共有フォルダはサポートしていないようです。MacのDockerはVirtualboxで動かしているため、この問題に引っかかっているらしく、解決はできなさそうです…
https://docs.mongodb.org/manual/administration/production-notes/#fsync-on-directories

そのため、MacのDocker上で動くMongoDBのデータを永続化するにはData Volumeは使えず、別の手段を取る必要があるようです。どうするのがいいのかは現在調査中です…

6
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6