gpt4 book ai didi

windows - 将 MongoDB 与 Docker 卷一起使用时,数据不会保存在数据库中吗?

转载 作者:行者123 更新时间:2023-12-02 18:06:53 25 4
gpt4 key购买 nike

有一个服务使用了mongodb。但是当我重新启动计算机或 docker 机器时,数据库中没有存储任何数据。docker-compose.yml:

version: "3"
Services:
...
mongodb:
restart: always
image: mongo:latest
environment:
- MONGO_DATA_DIR=/dockerdata/db
volumes:
- ./dockerdata/db:/data/db
ports:
- 27017:27017
command: mongod

我尝试在主机上做数据库存储,但也没有帮助:

docker-compose.yml:

version: "3"
Services:
...
mongodb:
restart: always
image: mongo:latest
environment:
- MONGO_DATA_DIR=/c/users/frol/mongodata/db
volumes:
- /c/users/frol/mongodata/db:/data/db
ports:
- 27017:27017
command: mongod

如果你创建一个命名卷,docker 会写一个错误:错误:对于 test_mongodb_1 无法为服务 mongodb 创建容器:fa挂载本地卷:mount/c/users/frol/mongodata/db:/mnt/sda1/var/lib/docker/volumes/test_mongodata/_data,标志:0x1000:没有那个文件或目录

docker-compose.yml:

version: "3"
services:
...
mongodb:
restart: always
image: mongo:latest
environment:
- MONGO_DATA_DIR=/c/users/frol/mongodata/db
volumes:
- mongodata:/data/db
ports:
- 27017:27017
command: mongod
volumes:
mongodata:
driver: local
driver_opts:
type: none
device: /c/users/frol/mongodata/db
o: bind

主机 - win 8.1,已安装 docker toolbox 19.03.1。
请帮助我,我是新手。如何确保数据库数据不丢失?

最佳答案

如果您只是修复撰写文件中的一个简单拼写错误,您的第一次尝试就会成功:

version: "3"
services:
...
mongodb:
restart: always
image: mongo:latest
environment:
- MONGO_DATA_DIR=/data/db # changed
volumes:
- ./dockerdata/db:/data/db
ports:
- 27017:27017
command: mongod

但是,因为 /data/dbMONGO_DATA_DIR 的默认值,所以设置它是非常多余的。


但我更喜欢使用命名卷,这样数据会持续存在,但我不必看到“丑陋”的数据库存储文件夹:

version: "3"
services:
...
mongodb:
restart: always
image: mongo:latest
volumes:
- mongodata:/data/db
ports:
- 27017:27017
command: mongod
volumes:
mongodata:

关于windows - 将 MongoDB 与 Docker 卷一起使用时,数据不会保存在数据库中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62029842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com