在我的 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
,但没有成功。谢谢。
最佳答案
我使用的是 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:
关于mongodb - MongoDB 的 docker-compose.yml 数据不会持久保存到主机卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53870416/