我正在尝试使用official Mongo dockerfile来启动数据库,我使用-v
命令将本地目录映射到容器内的/data
。
作为Dockerfile
的一部分,它会尝试将此目录chown给用户mongodb:
RUN mkdir -p /data/db /data/configdb \
&& chown -R mongodb:mongodb /data/db /data/configdb
VOLUME /data/db /data/configdb
但是,使用以下命令失败:
chown: changing ownership of '/data/db': Permission denied
我在这里做错了什么?我找不到任何相关的文档 - 当然容器应该具有映射目录的完全权限,因为它在docker run命令中显式传递:
docker run -d --name mongocontainer -v R:\mongodata:/data/db -p 3000:27017 mongo:latest
答案 0 :(得分:1)
您遇到的问题类似于mongo issues 68或issue 74
中的相同错误消息主机卷目录不能位于
/Users
(或~
)下。尝试:
docker run --name mongo -p 27017:27017 -v /var/lib/boot2docker/my-mongodb-data/:/data/db -d mongo --storageEngine wiredTiger
PR 470添加:
警告:因为MongoDB使用内存映射文件,因此无法通过vboxsf将其用于主机(vbox bug)。
MongoDB不支持VirtualBox共享文件夹(请参阅docs.mongodb.org及相关的jira.mongodb.org错误)。
这意味着使用Docker Toolbox的默认设置无法运行映射到主机的数据目录的MongoDB容器。