简体   繁体   English

Docker 组成镜像文件夹

[英]Docker compose mirroring folder

I'm trying to create a mongodb service that runs in a docker container.我正在尝试创建一个在 docker 容器中运行的 mongodb 服务。 My purpose is persist all the data inside container in the host machine.我的目的是将所有容器内的数据保存在主机中。 For this I have a docker-compose.yml file, whose content is:为此,我有一个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'

As you can see, my volumes section declares to drop all content of /data folder inside container into mongodata folder in host.如您所见,我的volumes部分声明将容器内/data文件夹的所有内容放入主机中的mongodata文件夹中。 I created a folder named mongodata just at the same height that my docker-compose.yml file.我创建了一个名为mongodata的文件夹,其高度与我的docker-compose.yml文件相同。

myprojectfolder
|__docker-compose.yml
|__mongodata

When I do docker-compose up it creates a container and I can connect and so on.当我执行docker-compose up它会创建一个容器,我可以连接等等。 However, my mongodata folder is completely empty.但是,我的mongodata文件夹完全是空的。 That's cannot be true, because if I go inside docker container ( docker exec -it <container-id> bash ) and explore /data folder, it is not empty at all.这不可能是真的,因为如果我 go 在 docker 容器中 ( docker exec -it <container-id> bash ) 并浏览/data文件夹,它根本不是空的。

What is my mistake here?我的错误是什么?

Thanks!谢谢!

The following Docker compose file works for the directory structure below on ubuntu 18.04, check if docker has permissions to write into the local folder mongodata以下Docker compose文件适用于ubuntu 18.04下的目录结构,检查docker是否有权限写入本地文件夹mongodata

If that doesn't work paste logs by running docker-compose logs will update answer specific to the issue.如果这不起作用,通过运行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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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