[英]Creating mongo docker container with local storage on hos
I want to run mongo db in docker container.我想在 docker 容器中运行 mongo db。 I've pulled image and run it.我已经拉出图像并运行它。 So it seems work ok.所以看起来工作正常。
But every time I start it the DB is overwritten so I loose any changes.但是每次我启动它时,数据库都会被覆盖,所以我会丢失任何更改。 So I want to want to map somehow internal container storage on my local host folder.所以我想 map 以某种方式在我的本地主机文件夹上进行内部容器存储。
Should I write Dockerfile or/and docker-compose.yaml?我应该写 Dockerfile 或/和 docker-compose.yaml 吗? I suppose this is simple question but being new in docker I can't understand what to read to get full understanding.我想这是一个简单的问题,但在 docker 中是新的,我不明白要读什么才能完全理解。
You do not need to write Dockerfile and make thing complex, just use offical image as mentioned in command or compose file.您不需要编写 Dockerfile 并使事情变得复杂,只需使用命令或撰写文件中提到的官方图像即可。
You can use both options either docker run
or docker-compose
but the path should be correct in mapping to keep data persistent.您可以使用docker run
或docker-compose
这两个选项,但映射中的路径应该正确以保持数据持久性。
Here is way这是方法
/my/own/datadir
.在主机系统上的合适卷上创建数据目录,例如/my/own/datadir
。Start your mongo container like this:像这样启动你的 mongo 容器:
$ docker run --name some-mongo -v /my/own/datadir:/data/db -d mongo
The
-v /my/own/datadir:/data/db
part of the command mounts the/my/own/datadir
directory from the underlying host system as/data/db
inside the container, where MongoDB by default will write its data files.该命令的-v /my/own/datadir:/data/db
部分将底层主机系统中的/my/own/datadir
目录挂载为容器内的/data/db
,默认情况下 MongoDB 将写入其数据文件.
mongo docker volume mongo docker 体积
with docker-compose与 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.