简体   繁体   English

具有音量的Mongo docker错误

[英]Mongo docker with volume get error

After running docker run --name mongo -p 27017:27017 -v ~/Documents/store/mongo/:/data/db -d mongo --smallfiles 运行docker run --name mongo -p 27017:27017 -v ~/Documents/store/mongo/:/data/db -d mongo --smallfiles

[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 initAndListen中的[initandlisten]异常:98无法创建/打开锁文件:/data/db/mongod.lock errno:13权限被拒绝Mongod实例已在运行吗?

In store directory, ls -l 商店目录中, ls -l

drwxr-xr-x  4 MeoBeoI  staff  136 Dec  8 17:11 mongo
drwxr-xr-x  2 MeoBeoI  staff   68 Dec  9 10:20 redis

I use OSX 10.11.1 我使用OSX 10.11.1

Looking at the mongo Dockerfile : 看一下mongo Dockerfile

So try and make sure to start your container with that user: 因此,请尝试确保与该用户一起启动容器:

docker run --user mongodb ...

If that is not working, then fallback to the original docker run command (which runs as root by default) and define run.sh (that needs to be copied in your own image) which will: 如果这不起作用,则回退到原始的docker run命令(默认情况下以root身份运行)并定义run.sh (需要复制到您自己的映像中),该命令将:

  • do the right chown -R mongodb:mongodb /data/db 做正确的chown -R mongodb:mongodb /data/db
  • call entrypoint.sh mongod 调用entrypoint.sh mongod

That is: 那是:

docker run ... run.sh

That would be an approach similar to issue 7198 (Make uid & gid configurable for shared volumes) . 那将是类似于问题7198(可为共享卷配置uid&gid)的方法

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM