我正在尝试创建在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/