【发布时间】:2015-09-15 10:34:49
【问题描述】:
在 Mac 上,我从 docker 运行 mongodb,数据目录从主机上的卷中安装,如下所示:
docker run -d -p 27017:27017 -v /Users/me/git/world/db:/var/lib/mongodb gzoller/world
(/var/lib/mongodb 是 mongo 配置文件存储数据的地方。)
即使我终止运行 mongodb 的容器,我也希望我的数据保留在主机上。
使用这个运行命令,mongo 不会在容器中启动。容器中的mongo日志有这个剪辑:
Mon Sep 14 18:27:59 [initandlisten] options: { command: [ "run" ], config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", journal: "true", logappend: "true", logpath: "/var/log/mongodb/mongodb.log", unixSocketPrefix: "/var/run/mongodb" }
Mon Sep 14 18:27:59 [initandlisten] Assertion: 13651:Couldn't fsync directory '/var/lib/mongodb': errno:22 Invalid argument
我已经 chmod a+rwx 我要挂载到的主机上的 db 目录。
到目前为止,我认为我学到的是(至少在 Mac 上)只有容器中的 root 可以写入主机上的卷,而 mongo 创建自己的用户 mongodb,我认为它不能写入到我安装的卷。
如何让 mongo 写入 MacOS 上已挂载的主机卷?
【问题讨论】:
-
我假设你使用 OSX 和 boot2docker?
-
OSX 与 Docker 机器
-
您在此期间找到解决方案了吗?我有同样的问题