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

Yur*_*ura 1 mongodb docker

我想在 docker 容器中运行 mongo db。我已经提取了图像并运行它。所以看起来工作正常。

但每次我启动它时,数据库都会被覆盖,因此我会丢失任何更改。所以我想以某种方式将内部容器存储映射到我的本地主机文件夹上。

我应该编写 Dockerfile 或/和 docker-compose.yaml 吗?我想这是一个简单的问题,但作为 Docker 新手,我不明白该读什么才能充分理解。

Adi*_*iii 6

您不需要编写 Dockerfile 并使事情变得复杂,只需使用命令或撰写文件中提到的官方映像即可。

您可以使用这两个选项,或者docker rundocker-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)

  • `docker-compose up` 就足够了 (2认同)