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

问题描述 投票:4回答:1

我正在尝试使用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
docker dockerfile docker-for-windows docker-desktop
1个回答
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容器。

© www.soinside.com 2019 - 2024. All rights reserved.