无法在Docker容器内调用chown(适用于Windows的Docker)

时间:2016-11-27 21:52:26

标签: docker dockerfile docker-for-windows docker-desktop

我正在尝试使用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

1 个答案:

答案 0 :(得分:1)

您遇到的问题类似于mongo issues 68issue 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容器。