是否可以挂载我现有的Mongo数据库与docker-compose?



经过几个月的开发,我认为最好将MERN应用程序进行dockerize。我设法创建了.yaml文件和一切工作正常,但问题是,我已经收集了大量的数据。我想能够安装这个数据到容器,但我不知道如何做到这一点。阅读了很多东西,但我的数据仍然没有出现后组成的应用程序。下面是我的docker-compose.yaml文件的样子:

version: '3.9'
services:
#MongoDB Service
mongo_db:
container_name: db_container
image: mongo:latest
restart: always
ports:
- 2717:27017
volumes: 
- /mnt/c/temp/mongo/db:/data/db 
#Node API Service
api:
build: .
ports: 
- 4001:4001
environment:
PORT: 4001
MONGODB_URI: mongodb://db_container:27017
DB_NAME: project-system
depends_on:
- mongo_db

volumes:
mongo_db: 

如你所见,

volumes: 
- /mnt/c/temp/mongo/db:/data/db

我正试图从我的C:驱动器指向路径,但这不起作用。我也尝试了相同的行:

volumes:
mongo_db:

(文件底部),但仍然没有成功。基本上我现有的DB在

C: data db

我怎么能指出这是MongoDB服务的来源?

首先,您需要从本地MongoDB创建转储文件,并将这些文件复制到docker MongoDB。您可以使用以下命令创建:

mongodump --uri 'mongodb://localhost:27017/yourdatabase' --archive=<your file> --gzip
mongorestore --uri 'mongodb://remotehost:27017/yourdatabase' --archive=<your file> --gzip

您应该能够从本地主机访问docker。

注意:如果你不正确,请参考这个答案。

您可以在正在挂载的路径上进行这些更改以使数据持久。创建一个新的文件夹C:/data/docker_mongo,使数据持久化。

version: '3.9'
services:
#MongoDB Service
mongo_db:
container_name: db_container
image: mongo:latest
restart: always
ports:
- 2717:27017
volumes: 
- C:/data/docker_mongo:/data/db 
#Node API Service
api:
build: .
ports: 
- 4001:4001
environment:
PORT: 4001
MONGODB_URI: mongodb://db_container:27017
DB_NAME: project-system
depends_on:
- mongo_db

volumes:
mongo_db: 

最新更新