我正在尝试使用 mongo-compose 运行图像。
撰写文件是这个:
version: '2'
services:
db:
image: mongo:3.4.10
volumes:
- ./data/mongodb:/data/db
我跑完之后
docker-compose -p DropDesk up -d db
我收到"完成"消息,但容器未运行。检查容器日志,我看到以下消息:
exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
此外,如果我从撰写文件中删除卷映射,容器可以正常工作。
我使用的是 Centos 7(内核 5(,我已经禁用了 selinux,我使用的是 Docker 引擎 18.09(。
有谁知道为什么会这样?我已经几个小时没有结果了。
docker-compose.yml
文件更改为:
version: '2'
services:
db:
image: mongo:3.4.10
command: mongod --dbpath /data/db
volumes:
- ./data/mongodb:/data/db
此问题与错误的权限有关。
确保 docker-compose.yml
文件中的./data
卷端点位于用户组其他权限支持的文件系统上。将文件夹放在NTFS
格式化的分区上将导致上述错误(将其移动到Ext4
将解决此问题(。
将权限更改为目录./data/mongodb
以便 docker 中的用户可以写入目录。