mongodb - Docker撰写镜像文件夹

标签 mongodb docker docker-compose docker-volume

我正在尝试创建在docker容器中运行的mongodb服务。我的目的是将所有数据持久保存在主机的容器中。为此,我有一个docker-compose.yml文件,其内容为:

version: '3.2'

services:
  mongodb:
    image: mongo:latest
    environment:
      MONGO_INITDB_ROOT_USERNAME: myrootmongousername
      MONGO_INITDB_ROOT_PASSWORD: myrootmongopassword
      MONGO_INITDB_DATABASE: dbnameiwanttocreate
    ports:
      - '27010:27017'
    volumes:
      - 'mongodata:/data'

如您所见,我的volumes部分声明将容器内/data文件夹的所有内容放入主机的mongodata文件夹中。我创建了一个名为mongodata的文件夹,其高度与docker-compose.yml文件的高度相同。
myprojectfolder
|__docker-compose.yml
|__mongodata

当我执行docker-compose up时,它将创建一个容器,并且可以连接等等。但是,我的mongodata文件夹是完全空的。那不是真的,因为如果我进入docker容器(docker exec -it <container-id> bash)并浏览/data文件夹,它根本就不是空的。

我这是什么错

谢谢!

最佳答案

以下Docker compose文件适用于ubuntu 18.04上的以下目录结构,请检查docker是否具有写入本地文件夹mongodata的权限

如果这样不起作用,则通过运行docker-compose logs粘贴日志将更新特定于该问题的答案。

version: '3.2'

services:
  mongodb:
    image: mongo:latest
    environment:
      MONGO_INITDB_ROOT_USERNAME: myrootmongousername
      MONGO_INITDB_ROOT_PASSWORD: myrootmongopassword
      MONGO_INITDB_DATABASE: dbnameiwanttocreate
    ports:
      - '27010:27017'
    volumes:
      - './mongodata:/data'
├── docker-compose.yml
└── mongodata
    ├── configdb
    └── db

关于mongodb - Docker撰写镜像文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62302064/

相关文章:

php - 连接拒绝 docker、laravel 和 mysql 服务器

docker - 在另一个 compose 文件中导入 docker compose 文件

docker - 在Docker中使用包含 “,”的shell命令

C# MongoDb 驱动问题 Update Failing

node.js - 文档中的空字段会占用 Mongoose 中的空间吗?

java - Spring data mongodb 序列化 InetSocketAddress

docker - 有关k8空间中的configmap和 secret 的一般问题

mysql - Docker - 对另一个应用程序使用相同的网络和数据库?

sql - MongoDB/Redis/SQL 并发模式 : read-modify-write by multiple processes

unit-testing - 在 docker build 中缓存 "go get"