我正在尝试创建在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
文件夹,它根本就不是空的。
这是我的错?
谢谢!
答案 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