Docker撰写镜像文件夹

时间:2020-06-10 11:07:21

标签: 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文件夹,它根本就不是空的。

这是我的错?

谢谢!

1 个答案:

答案 0 :(得分:0)

以下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