2016-11-27 238 views
4

我正在尝试使用official Mongo dockerfile来启动数据库,我使用-v命令将本地目录映射到容器内的/ data。无法在Docker容器内调用chown(Docker for Windows)

由于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 -d --name mongocontainer -v R:\mongodata:/data/db -p 3000:27017 mongo:latest 
+2

出现在Dockerfile RUN语句中的命令不会在发生“docker run”时运行。当运行'docker build'命令时,Dockerfile RUN语句会在映像创建期间发生。 – programmerq

回答

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容器并将数据目录映射到主机是不可能的。

+0

了解 - 谢谢您的全面回答。 – James

相关问题