我是否正确地为 MongoDB 容器安装了卷?

Am I mounting a volume for a MongoDB container correctly?

我下载了一个 MongoDB docker 图像并想安装一个卷来保存添加到 MongoDB 中的数据。我对卷是否正确挂载以及容器使用的是卷还是绑定挂载感到困惑。

首先我创建了一个卷:

docker volume create mongo-vol-1

然后我运行 docker 运行 命令:

docker run \
-p 30001:27017 \
--name mongo-1 \
--mount source=mongo-vol-1,target=/users/owner/documents/mongodb/data/\  
mongo mongod

容器可以启动,测试数据添加成功。但是,退出容器后,/users/owner/documents/mongodb/data目录还是空的。

我重启了容器,测试数据还是可以取回。

数据是存储在容器中,而不是宿主机目录中?如果是这样,如何link主机目录到MongoDB存储数据的地方?

此外,我 运行 一个 docker 检查命令:

docker inspect mongo-1

结果是:

...
"Mounts": [
{
    "Type": "volume",
    "Source": "mongo-vol-1",
    "Target": "/users/owner/documents/mongodb/data"
}
...
"Volumes": {
     "/data/configdb": {},
     "/data/db": {}
        },
...

从上面的结果来看,我不确定目标目录是挂载还是卷?

请做一个docker inspect mongo-vol-1,你就会知道安装点在哪里。

/users/owner/documents/mongodb/data 是容器内部的位置,它来自容器对检索数据位置的理解。

更多详情:https://docs.docker.com/engine/admin/volumes/volumes/#start-a-container-with-a-volume