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

我试图使用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
最佳答案
您有类似的问题,说明mongo issues 68issue 74中的相同错误消息

The host machine volume directory cannot be under /Users (or ~). Try:

docker run --name mongo -p 27017:27017 -v /var/lib/boot2docker/my-mongodb-data/:/data/db -d mongo --storageEngine wiredTiger

PR 470增加:

WARNING: because MongoDB uses memory mapped files it is not possible to use it through vboxsf to your host (07003).

VirtualBox shared folders are not supported by MongoDB (see 07004 and related 07005 bug).

This means that it is not possible with the default setup using Docker Toolbox to run a MongoDB container with the data directory mapped to the host.

转载注明原文:无法在Docker容器内调用chown(适用于Windows的Docker) - 代码日志