Reputation: 660
When starting the image I get the following error:
2019-02-27T17:09:41.095+0000 E STORAGE [initandlisten] WiredTiger error (17) [1551287381:95206][1:0x7fae36fc4a40], connection: __posix_open_file, 715:
/data/db/WiredTiger.wt: handle-open: open: File exists Raw: [1551287381:95206][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists
2019-02-27T17:09:41.108+0000 I STORAGE [initandlisten] WiredTiger message unexpected file WiredTiger.wt found, renamed to WiredTiger.wt.6
2019-02-27T17:09:41.111+0000 E STORAGE [initandlisten] WiredTiger error (1) [1551287381:111166][1:0x7fae36fc4a40], connection: __posix_open_file, 715:
/data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1551287381:111166][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
2019-02-27T17:09:41.149+0000 E STORAGE [initandlisten] WiredTiger error (17) [1551287381:149030][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists Raw: [1551287381:149030][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists
2019-02-27T17:09:41.153+0000 I STORAGE [initandlisten] WiredTiger message unexpected file WiredTiger.wt found, renamed to WiredTiger.wt.7
2019-02-27T17:09:41.156+0000 E STORAGE [initandlisten] WiredTiger error (1) [1551287381:156133][1:0x7fae36fc4a40], connection: __posix_open_file, 715:
/data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1551287381:156133][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
2019-02-27T17:09:41.177+0000 E STORAGE [initandlisten] WiredTiger error (17) [1551287381:177375][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists Raw: [1551287381:177375][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: File exists
2019-02-27T17:09:41.192+0000 I STORAGE [initandlisten] WiredTiger message unexpected file WiredTiger.wt found, renamed to WiredTiger.wt.8
2019-02-27T17:09:41.194+0000 E STORAGE [initandlisten] WiredTiger error (1) [1551287381:194762][1:0x7fae36fc4a40], connection: __posix_open_file, 715:
/data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1551287381:194762][1:0x7fae36fc4a40], connection: __posix_open_file, 715: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
2019-02-27T17:09:41.200+0000 W STORAGE [initandlisten] Failed to start up WiredTiger under any compatibility version.
2019-02-27T17:09:41.200+0000 F STORAGE [initandlisten] Reason: 1: Operation not permitted
2019-02-27T17:09:41.201+0000 F - [initandlisten] Fatal Assertion 28595 at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 704
The .env folder value is
MONGO_SAVE_PATH=./database/db
The DB docker file:
FROM mongo:latest
VOLUME ["/data/db"]
WORKDIR /data
EXPOSE 27017
CMD ["mongod"]
The docker-compose.yml DB container
services:
my-mongo-db:
build: ./database
ports:
- 32815:27017
volumes:
- ./database/db:/data/db
I'm not sure how to fix this. However, on linux and Mac this issue doesn't appear.
Upvotes: 33
Views: 24769
Reputation: 21
For me, the issue was caused by NTFS permissions while running Mongo on WSL2. Moving to ext4 (WSL partition) fixed it.
Upvotes: 2
Reputation: 361
If you are using docker-compose then following is the way replicate the answer above.
services:
mongodb_container:
...
volumes:
- mongodata:/data/db
volumes:
mongodata:
Please note that the sample above indicates only needed parts of the yml file for the mongodb storage.
Upvotes: 18
Reputation: 5663
Not entirely the same issue, but I saw the same error messages when simply spinning up a Docker container for mongo in Ubuntu and attempting to mount an existing directory to the container:
docker run --name some-mongo -p 27017:27017 -v $PWD/db-data:/data/db -d mongo
In my case the errors only showed up if I was trying to run the command from a directory on my mounted HDD, and I was able to solve it by migrating my codebase with the /db-data directory to my SSD where Ubuntu is installed.
Upvotes: 0
Reputation: 1344
Although Augustas is right, but I found this answer particularly useful with docker-compose.yml
.
What you can do as a workaround is:
.env
file in the same path as your docker-compose
file and store the current path in an environment variable like this:MONGO_HOST_DATA=/Users/user123/MyMongoProject //path to mongo data folder (for C:\Users\user123\MyMongoProject)
docker-compose
file, replace the above-mentioned variable: services:
my-mongo-db:
build: ./database
ports:
- 32815:27017
volumes:
- ${MONGO_HOST_DATA}/database/db:/data/db
docker-compose config
Additionally, if you use any disk drive other than C:\ you might want to change the Docker file sharing settings:
Hope this helps.
Upvotes: 6
Reputation: 1217
WARNING (Windows & OS X): The default Docker setup on Windows and OS X uses a VirtualBox VM to host the Docker daemon. Unfortunately, the mechanism VirtualBox uses to share folders between the host system and the Docker container is not compatible with the memory mapped files used by MongoDB (see vbox bug, docs.mongodb.org and related jira.mongodb.org bug). This means that it is not possible to run a MongoDB container with the data directory mapped to the host.
Answer from docker mongo GitHub
Workaround to persist data:
docker volume create --name=mongodata
docker run -d -p 27017:27017 -v mongodata:/data/db --name=mymongo mongodb:3.3
More info here
Upvotes: 41