如何运行官方mongodb docker存储数据到单独的主机系统驱动器?

时间:2016-03-07 12:41:29

标签: linux mongodb docker

我希望在将数据存储到单独的主机系统驱动器时运行official mongodb docker,并在Redhat linux上将{XFS文件系统挂载为/data。我希望通过

实现这一目标

docker run --name mongodb -p 27017:27017 -v /data:/data/db -d mongo --master --storageEngine wiredTiger

我的理解是,这应该创建一个新的卷,将主机系统的/data作为/data/db安装在docker容器中,从而将对/data/db的所有访问权限重定向到主持人/data

执行docker inspect --type=container ce03...73节目

"Mounts": [
{
    Source: "/data",
    Destination: "/data/db",
    Mode: "",
    RW: true
},
...

然而,执行df表示/dev/xvda1挂载为/是唯一的fs增长,而/dev/xvdb挂载为/data仍为空。这由du /datals -a /data确认均未显示。 现在,如果我sudo du -L / | grep -E "^[0-9]{6,20}",这将显示我的系统上具有相关字节大小的所有目录。其中唯一增长的是/proc/3071/task/3071/*。执行top -p 3071会显示mongod。因此,/data不是将任何内容保存到mongod,而是创建了一个虚拟卷并在那里存储数据。在容器内执行sudo du -L / | grep -E "^[0-9]{6,20}"确认只有/data/db正在增长。但是,在容器内执行lsblk并未显示任何内容将作为/data/db挂载,只显示两个docker循环被挂载为/。因此/data/db只是/泊坞窗图片上的普通目录。

为什么呢?如何在/data上存储数据?

0 个答案:

没有答案