Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows mounting /data/db #74

Closed
Sebastien-Meiffren opened this issue Jan 10, 2016 · 17 comments · Fixed by docker-library/docs#470
Closed

Windows mounting /data/db #74

Sebastien-Meiffren opened this issue Jan 10, 2016 · 17 comments · Fixed by docker-library/docs#470

Comments

@Sebastien-Meiffren
Copy link

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 :

  • I have changed the security parameters in windows to allow everyone to do everything (full access)
  • If I mount in a different directory, it works (the container launchs itself and I can write in my directory)

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

@zysam
Copy link

zysam commented Jan 17, 2016

+1, it can run ,but don't mount

@yosifkit
Copy link
Member

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.

@Sebastien-Meiffren
Copy link
Author

That is unfortunate !
Any clues on why it is this way ?

@yosifkit
Copy link
Member

Found a link: VirtualBox Shared Folders are not supported by mongodb.

@mayerwin
Copy link

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.

@yosifkit
Copy link
Member

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.

@ptitcoutu
Copy link

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

@Oyelaking
Copy link

Wow!!!

@ptitcoutu thanks a lot. Been battling with this for over a week.

@christianulson
Copy link

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 <local_dir>
mount -t vboxsf -o defaults,uid=id -u docker,gid=id -g docker <mount_name> <local_dir>

exemple :

mkdir -p Projects
mount -t vboxsf -o defaults,uid=id -u docker,gid=id -g docker Projects Projects

Where Projects is the virtual box folder

To close and save the file:
:x

@Unthrottled
Copy link

Unthrottled commented Dec 7, 2017

@ptitcoutu Thanks! For those using compose you can do this:

version: '3'
services:
  mongodb:
    image: mongo:latest
    volumes:
      - mongodata:/data/db
volumes:
  mongodata:

@lsytj0413
Copy link

same issue here.

@davesmits
Copy link

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?

@payneBrandon
Copy link

@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...

@davesmits
Copy link

davesmits commented Apr 17, 2019

We solved it by using a volume inside the virtual machine

@renaudl
Copy link

renaudl commented Aug 28, 2019

Sames issue. Will try mounted volume but this should not be needed really

@erkansirin78
Copy link

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.

@vitalybrandes
Copy link

Have same problem. Is there any solution for that on do let for windows?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.