Hi,
I'm trying to mount /data/db from my Windows dev PC but everytime I try, Mongo crashes as it seems to not have the right BUT :
Here are the logs :
2016-01-10T17:35:20.729+0000 I CONTROL [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=8036f3a56506
2016-01-10T17:35:20.729+0000 I CONTROL [initandlisten] db version v3.2.0
2016-01-10T17:35:20.729+0000 I CONTROL [initandlisten] git version: 45d947729a0315accb6d4f15a6b06be6d9c19fe7
2016-01-10T17:35:20.729+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013
2016-01-10T17:35:20.729+0000 I CONTROL [initandlisten] allocator: tcmalloc
2016-01-10T17:35:20.729+0000 I CONTROL [initandlisten] modules: none
2016-01-10T17:35:20.729+0000 I CONTROL [initandlisten] build environment:
2016-01-10T17:35:20.729+0000 I CONTROL [initandlisten] distmod: debian71
2016-01-10T17:35:20.729+0000 I CONTROL [initandlisten] distarch: x86_64
2016-01-10T17:35:20.729+0000 I CONTROL [initandlisten] target_arch: x86_64
2016-01-10T17:35:20.729+0000 I CONTROL [initandlisten] options: { storage: { engine: "wiredTiger" } }
2016-01-10T17:35:20.735+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=1G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enab led=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2016-01-10T17:35:20.741+0000 E STORAGE [initandlisten] WiredTiger (1) [1452447320:741206][1:0x7f4dc3461c80], connection: /data/db/WiredTiger.wt: Operation not permitted
2016-01-10T17:35:20.742+0000 I - [initandlisten] Assertion: 28595:1: Operation not permitted
2016-01-10T17:35:20.744+0000 I STORAGE [initandlisten] exception in initAndListen: 28595 1: Operation not permitted, terminating
2016-01-10T17:35:20.744+0000 I CONTROL [initandlisten] dbexit: rc: 100
I have files that have been created in my directory but they seems locked in. I have to turn off the docker-machine to delete WiredTiger.wt
+1, it can run ,but don't mount
Yeah I don't think it is possible to run mongodb using the shared folders of the virtual machine. You can still keep it persistent if you use -v /var/lib/boot2docker/my-mongodb-data/:/data/db/ which will store it on the VM hard disk.
That is unfortunate !
Any clues on why it is this way ?
Found a link: VirtualBox Shared Folders are not supported by mongodb.
I am having this issue on the latest Docker for Windows beta, which uses Hyper-v (not Virtualbox):
mongodb | 2016-07-25T10:04:35.286+0000 I CONTROL [main] ** WARNING: --rest is specified without --httpinterface,
mongodb | 2016-07-25T10:04:35.287+0000 I CONTROL [main] ** enabling http interface
mongodb | 2016-07-25T10:04:35.327+0000 I CONTROL [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=b96365b4a2c3
mongodb | 2016-07-25T10:04:35.328+0000 I CONTROL [initandlisten] db version v3.3.9
mongodb | 2016-07-25T10:04:35.328+0000 I CONTROL [initandlisten] git version: 15d3d1f9bd151a2cd21fc7bee0bffc61caaaeb1d
mongodb | 2016-07-25T10:04:35.328+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1t 3 May 2016
mongodb | 2016-07-25T10:04:35.329+0000 I CONTROL [initandlisten] allocator: tcmalloc
mongodb | 2016-07-25T10:04:35.329+0000 I CONTROL [initandlisten] modules: none
mongodb | 2016-07-25T10:04:35.329+0000 I CONTROL [initandlisten] build environment:
mongodb | 2016-07-25T10:04:35.329+0000 I CONTROL [initandlisten] distmod: debian81
mongodb | 2016-07-25T10:04:35.329+0000 I CONTROL [initandlisten] distarch: x86_64
mongodb | 2016-07-25T10:04:35.329+0000 I CONTROL [initandlisten] target_arch: x86_64
mongodb | 2016-07-25T10:04:35.330+0000 I CONTROL [initandlisten] options: { net: { http: { RESTInterfaceEnabled: true, enabled: true } } }
mongodb | 2016-07-25T10:04:35.354+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=256M,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
mongodb | 2016-07-25T10:04:35.460+0000 E STORAGE [initandlisten] WiredTiger (17) [1469441075:460814][1:0x7fd5cf5c2cc0], connection: /data/db/WiredTiger.wt: handle-open: open: File exists
mongodb | 2016-07-25T10:04:35.467+0000 I STORAGE [initandlisten] WiredTiger unexpected file WiredTiger.wt found, renamed to WiredTiger.wt.3
mongodb | 2016-07-25T10:04:35.475+0000 E STORAGE [initandlisten] WiredTiger (1) [1469441075:475777][1:0x7fd5cf5c2cc0], connection: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
mongodb | 2016-07-25T10:04:35.483+0000 I - [initandlisten] Assertion: 28595:1: Operation not permitted
mongodb | 2016-07-25T10:04:35.509+0000 I STORAGE [initandlisten] exception in initAndListen: 28595 1: Operation not permitted, terminating
mongodb | 2016-07-25T10:04:35.509+0000 I NETWORK [initandlisten] shutdown: going to close listening sockets...
mongodb | 2016-07-25T10:04:35.509+0000 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
mongodb | 2016-07-25T10:04:35.509+0000 I NETWORK [initandlisten] shutdown: going to flush diaglog...
mongodb | 2016-07-25T10:04:35.509+0000 I CONTROL [initandlisten] now exiting
mongodb | 2016-07-25T10:04:35.510+0000 I CONTROL [initandlisten] shutting down with code:100
Is this expected? I thought Hyper-v resolved all problems posed by Virtualbox.
Docker for Windows does make much of the VM transparent to the Windows host, but it is still a virtual machine. I haven't tried using it with a mongo container, but I would guess that MongoDB needs something else supported by the file system. There is also this issue on the forums about volume mounts being extremely slow.
It works using a volume which is created using docker volume create --name=myvolume
The volume name is used instead of the local path. It's just a workaround.
To be more precise the line I used in my case :
docker volume create --name=mongodata
docker run -d -p 27017:27017 -v mongodata:/data/db聽--name=mymongo mongodb:3.3
Wow!!!
@ptitcoutu thanks a lot. Been battling with this for over a week.
on docker-machine i use this
conect to docker-machine
docker-machine ssh default
>
create a file
cd /
vi "/mnt/sda1/var/lib/boot2docker/bootlocal.sh"
inside of this file
mkdir -p
mount -t vboxsf -o defaults,uid=id -u docker,gid=id -g docker
exemple :
mkdir -p Projects
mount -t vboxsf -o defaults,uid=id -u docker,gid=id -g dockerProjects Projects
Where Projects is the virtual box folder
To close and save the file:
:x
@ptitcoutu Thanks! For those using compose you can do this:
version: '3'
services:
mongodb:
image: mongo:latest
volumes:
- mongodata:/data/db
volumes:
mongodata:
same issue here.
I am running a local kubernetes cluster via Docker for Windows option. It there a way to get mongo working that way with a persistant storage?
@davesmits were you able to get mongo working with your local kubernetes cluster? I've got the exact same scenario and just came upon this post...
We solved it by using a volume inside the virtual machine
Sames issue. Will try mounted volume but this should not be needed really
I used relative path ./mongodb_node rather than C:/Users/myuser/mongodb_node added some data than restarted container. Data still there. But when I used fully path data was wiped out.
Have same problem. Is there any solution for that on do let for windows?
Most helpful comment
@ptitcoutu Thanks! For those using compose you can do this: