Search code examples
mongodbdockerdocker-volume

Why my mongodb docker not writing data to host folder using volume?


I want to know why my mongo docker not writing data to local foler. I run my mongo docker with this command: (/data/db seems to be the mongdo docker's data storage position, and /data/docker/mongo_volume is the folder in the "host" machine)

sudo docker run -it -v /data/db:/data/docker/mongo_volume -d mongo

When the mongo docker successfully started in my host , $docker ps looks like good:

u@VM-0-9-ubuntu:/data/docker/mongo_volume$ sudo docker ps
CONTAINER ID   IMAGE                          COMMAND                  CREATED          STATUS          PORTS                                           NAMES
5848da7562a3   mongo                          "docker-entrypoint.s…"   10 minutes ago   Up 10 minutes   0.0.0.0:27017->27017/tcp, :::27017->27017/tcp   sleepy_clarke

and $ docker inspect <container_id> shows the mounted volume:

        "Mounts": [
            {
                "Type": "bind",
                "Source": "/data/db",
                "Destination": "/data/docker/mongo_volume",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },

and I check the dockers (in docker shell) /data/db folder, everything looks good:

ls -al
total 716
drwxr-xr-x 4 mongodb mongodb   4096 Mar 25 00:38 .
drwxr-xr-x 1 root    root      4096 Mar 25 00:28 ..
-rw------- 1 mongodb mongodb     50 Mar 25 00:28 WiredTiger
-rw------- 1 mongodb mongodb     21 Mar 25 00:28 WiredTiger.lock
-rw------- 1 mongodb mongodb   1472 Mar 25 00:38 WiredTiger.turtle
-rw------- 1 mongodb mongodb  94208 Mar 25 00:38 WiredTiger.wt
-rw------- 1 mongodb mongodb   4096 Mar 25 00:28 WiredTigerHS.wt
-rw------- 1 mongodb mongodb  36864 Mar 25 00:34 _mdb_catalog.wt
-rw------- 1 mongodb mongodb  20480 Mar 25 00:29 collection-0--6476415430291015248.wt
-rw------- 1 mongodb mongodb  65536 Mar 25 00:34 collection-11--6476415430291015248.wt
-rw------- 1 mongodb mongodb  20480 Mar 25 00:29 collection-2--6476415430291015248.wt
-rw------- 1 mongodb mongodb   4096 Mar 25 00:28 collection-4--6476415430291015248.wt
-rw------- 1 mongodb mongodb  20480 Mar 25 00:33 collection-7--6476415430291015248.wt
-rw------- 1 mongodb mongodb 225280 Mar 25 00:33 collection-9--6476415430291015248.wt
drwx------ 2 mongodb mongodb   4096 Mar 25 00:39 diagnostic.data
-rw------- 1 mongodb mongodb  20480 Mar 25 00:29 index-1--6476415430291015248.wt
-rw------- 1 mongodb mongodb  73728 Mar 25 00:33 index-10--6476415430291015248.wt
-rw------- 1 mongodb mongodb  20480 Mar 25 00:34 index-12--6476415430291015248.wt
-rw------- 1 mongodb mongodb  20480 Mar 25 00:29 index-3--6476415430291015248.wt
-rw------- 1 mongodb mongodb   4096 Mar 25 00:28 index-5--6476415430291015248.wt
-rw------- 1 mongodb mongodb   4096 Mar 25 00:28 index-6--6476415430291015248.wt
-rw------- 1 mongodb mongodb  20480 Mar 25 00:33 index-8--6476415430291015248.wt
drwx------ 2 mongodb mongodb   4096 Mar 25 00:28 journal
-rw-r--r-- 1 root    root         0 Mar 25 00:29 lueluelue
-rw------- 1 mongodb mongodb      2 Mar 25 00:28 mongod.lock
-rw------- 1 mongodb mongodb  36864 Mar 25 00:35 sizeStorer.wt
-rw------- 1 mongodb mongodb    114 Mar 25 00:28 storage.bson

However, here comes the problem: I found there's nothing in my "host machine"'s /data/docker/mongo_volume:

ubuntu@VM-0-9-ubuntu:/data/docker/mongo_volume$ ll
total 8
drwxr-xr-x 2 root root 4096 Mar 20 13:46 ./
drwxr-xr-x 3 root root 4096 Mar 20 13:46 ../

So anyone could give me a clue? thanks a lot!


Solution

  • your docker command is incorrect, you should place -v <host_folder>:<container_folder>, e.g.

    sudo docker run -it -v /data/docker/mongo_volume:/data/db -d mongo