数据不会通过MongoDB的docker-compose.yml持久保存到主机卷

时间:2018-12-20 14:16:55

标签: mongodb docker docker-compose volumes

我的Mac上已经安装了docker和MongoDB映像。当我使用直接在docker run命令中指定的卷启动容器时,即使我停止了容器,数据也会保留下来。但是,当我通过docker-compose.yml执行此操作时,此方法将不起作用。有人可以建议docker-compose.yml文件出什么问题吗?

当我这样做时,数据将保留下来:

docker run --name mongodb -v /Users/shrap7/projects/mongodb/data:/data/db --rm -d mongo

但是当我尝试使用docker-compose.yml进行操作时,它不会保留数据。

version: '3.4'
services:
    mongodb:
       image: mongo:latest
       container_name: "mongodb"
       volumes:
          - /Users/shrap7/projects/mongodb/data:/data/db
       ports:
          - 27017:27017

我尝试使用双引号,尝试使用相对路径,即./data:/data/db,但是没有运气。谢谢。

1 个答案:

答案 0 :(得分:0)

我正在使用Windows,并且今天遇到了同样的问题。我发现这个gist显示了docker-compose的mongodb配置,并且它支持命名卷。我尝试使用命名卷,它对我有用。

因此,在您的情况下,您可以尝试以下配置(使用命名卷):

services:
    mongodb:
        image: mongo:latest
        container_name: "mongodb"
        volumes:
            - mongodb:/data/db
            - mongodb_config:/data/configdb
        ports:
            - 27017:27017
volumes:
    mongodb:
    mongodb_config: