简体   繁体   English

在 hos 上创建具有本地存储的 mongo docker 容器

[英]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 rundocker-compose这两个选项,但映射中的路径应该正确以保持数据持久性。

Here is way这是方法

  • Create a data directory on a suitable volume on your host system, eg /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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM