我是集装箱和码头工人的新手,请多多包涵。我正在尝试在monology NAS上启动mongo并在其中运行db文件,该数据库文件存储在share文件夹(不同于创建的docker文件夹)中。所有用户都具有完全的读/写访问权限,但以下错误不断出现。
STORAGE [initandlisten] exception in initAndListen std ::exception:boost::filesystem::status: Permission denied: "/data/db/storage.bson", terminating
这就是我设置容器文件夹结构的方式。我认为该问题是虚拟驱动器映射的结果,但我不确定。一如既往,任何帮助将不胜感激。
编辑:在下面添加对/ share / data / db的权限。
从评论中添加答案以供后代...
此问题源于MongoDB进程inside,该Docker容器以没有主机权限的用户身份运行。最简单但可能最不安全的修复方法是使用所有人的读写权限来标记主机卷(chmod 777
)。
查看此帖子,了解更多详细信息和更多“适当”的解决方案。What is the (best) way to manage permissions for docker shared volumes
如果是与Synology有关的问题,请给我一个与Synology有关的答案。我决定在我的NAS上玩docker,并陷入同样的问题。我不太喜欢向所有人授予权限,我找到了一种解决方案,该方法如何使Syngo NAS上的docker通过mongo工作。对于主机上的共享文件夹,我为Owner组添加了Read / Write权限记录。在我的情况下,该文件夹的名称为“ mongo1”(此文件夹映射到容器内的“ / data / db”路径)。
似乎,mongo会在启动期间触摸此目录并更改其所有者(UID更改为999)。该用户在主机上不存在,但是没关系。由于有了新设置的权限规则,启动过程可以继续。
我希望有一天能对某人有所帮助。干杯! :)