mongodb - 我是否正确安装了 MongoDB 容器的卷?

标签 mongodb docker docker-volume

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

首先我创建了一个卷:

docker volume create mongo-vol-1

然后我运行 docker run 命令:
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 目录仍然是空的。

我重新启动了容器,仍然可以检索到测试数据。

数据是否存储在容器而不是主机目录中?如果是这样,如何将主机目录链接到 MongoDB 存储数据的位置?

另外,我运行了一个 docker inspect 命令:
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

关于mongodb - 我是否正确安装了 MongoDB 容器的卷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48051332/

相关文章:

node.js - 尝试从数据库集合(mongodb)获取消息历史记录

docker - 使用 https 的负载均衡器后面的 Keycloak Docker 失败

docker - 如何删除 docker 镜像中的配置卷

java - 使用 Java 从 mongodb 读取 blob(二进制)数据时出错

node.js - Node , Mongoose : Remove json element from query result with delete

python - docker-compose 与来自 sql 转储的多个 postgres 数据库

node.js - 限制 Docker 容器的文件访问

kubernetes - 如何在Kubernetes list 文件中将卷作为Nosuid挂载

docker - Docker卷NFS uid

javascript - Meteor更新收集错误