具有卷的码头工具中的Mongodb持久性

问题描述 投票:1回答:1

我正在尝试创建一个mongo数据库容器,但无法使数据保持不变。这是我的docker-compose.yml

version: "3.2"
services:
  mongodb:
  image: mongo:2.4
  command: --smallfiles 
  ports:
    - 27017:27017
  volumes:
    - type: volume
      source: mongodb_data_volume
      target: /data
volumes:
  mongodb_data_volume:
    external: true

在docker-compose和exec -it进入mongodb之后,我创建了一个新的空数据库,然后列出了已安装卷的内容:

root@cf8330019f91:/data/db# ls
_tmp     admin.1   journal  local.ns
admin.0  admin.ns  local.0  mongod.lock

但后来我进行了下降和上升循环,并将相同的安装量重置为初始值。

root@d18bda47d0b3:/data/db# ls
_tmp  journal  local.0  local.ns  mongod.lock

我试图只停止容器而不是组合,然后数据保持不变......这表明我仍在使用内部存储。如果是这种情况,我该如何使用外部卷?

我正在使用mac和docker版本18.06.1-ce-mac73。

mongodb docker docker-compose
1个回答
6
投票

我在我的本地系统中复制了同样的问题并尝试解决它,我已根据https://hub.docker.com/_/mongo/中给出的文档将docker-compose中的目标路径从“target:/ data”修改为“target:/ data / db”它的工作原理。使用更新的docker-compose文件,如下所示

    version: "3.2"
    services:
      mongodb:
      image: mongo:2.4
      command: --smallfiles 
      ports:
        - 27017:27017
      volumes:
        - type: volume
          source: mongodb_data_volume
          target: /data/db
    volumes:
      mongodb_data_volume:
        external: true

经过测试和工作!!!

© www.soinside.com 2019 - 2024. All rights reserved.