我想在 docker 容器中运行 mongo db。我已经提取了图像并运行它。所以看起来工作正常。
但每次我启动它时,数据库都会被覆盖,因此我会丢失任何更改。所以我想以某种方式将内部容器存储映射到我的本地主机文件夹上。
我应该编写 Dockerfile 或/和 docker-compose.yaml 吗?我想这是一个简单的问题,但作为 Docker 新手,我不明白该读什么才能充分理解。
您不需要编写 Dockerfile 并使事情变得复杂,只需使用命令或撰写文件中提到的官方映像即可。
您可以使用这两个选项,或者docker run,docker-compose但映射中的路径应该正确,以保持数据持久性。
这是方法
/my/own/datadir.像这样启动你的 mongo 容器:
$ docker run --name some-mongo -v /my/own/datadir:/data/db -d mongo
Run Code Online (Sandbox Code Playgroud)
该
-v /my/own/datadir:/data/db命令的一部分将/my/own/datadir底层主机系统中的目录挂载到/data/db容器内部,MongoDB 默认情况下将在其中写入其数据文件。
使用 docker-compose
version: "2"
services:
mongo:
image: mongo:latest
restart: always
ports:
- "27017:27017"
environment:
- MONGO_INITDB_DATABASE=pastime
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=root_password
volumes:
- /my/own/datadir:/data/db
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1662 次 |
| 最近记录: |