1
votes

After running 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

In store directory, 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

1
is there a mongod.lock file in /Documents/store/mongo/ ? If so delete it and run againSarath Nair
Thanks @Sharah Nair, but it's empty.Trung

1 Answers

1
votes

Looking at the 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:

  • do the right chown -R mongodb:mongodb /data/db
  • call 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).