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

Jam*_*mes 5 docker dockerfile docker-for-windows docker-desktop

我正在尝试使用官方的Mongo dockerfile来启动数据库,我正在使用-v命令将本地目录映射到/data容器内部。

作为的一部分Dockerfile,它将尝试将该目录授予用户mongodb:

RUN mkdir -p /data/db /data/configdb \
    && chown -R mongodb:mongodb /data/db /data/configdb
VOLUME /data/db /data/configdb
Run Code Online (Sandbox Code Playgroud)

但是,使用以下命令将失败:

chown: changing ownership of '/data/db': Permission denied
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?我找不到关于此的任何文档-肯定容器应该对映射目录具有完全权限,因为它已在docker run命令中明确传递:

docker run -d --name mongocontainer -v R:\mongodata:/data/db -p 3000:27017 mongo:latest
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 2

您有类似的问题,在mongo issues 68issues 74中说明了相同的错误消息

主机卷目录不能位于/Users( 或~) 下。尝试:

docker run --name mongo -p 27017:27017 -v /var/lib/boot2docker/my-mongodb-data/:/data/db -d mongo --storageEngine wiredTiger
Run Code Online (Sandbox Code Playgroud)

PR 470增加了:

警告:因为 MongoDB 使用内存映射文件,所以无法通过 vboxsf 在您的主机上使用它(vbox bug)。

MongoDB 不支持 VirtualBox 共享文件夹(请参阅docs.mongodb.org和相关的jira.mongodb.org错误)。

这意味着使用 Docker Toolbox 的默认设置无法运行数据目录映射到主机的 MongoDB 容器。