docker - 无法在 Docker 容器内调用 chown(Docker for Windows)

标签 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

最佳答案

您遇到了类似的问题,说明了 mongo issues 68 中的相同错误消息或 issue 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 (vbox bug).

VirtualBox shared folders are not supported by MongoDB (see docs.mongodb.org and related jira.mongodb.org 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 - 无法在 Docker 容器内调用 chown(Docker for Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40834349/

相关文章:

docker - Kubernetes 架构/设计/?

docker - 如何从多个 Dockerfile 中的共享目录复制文件?

docker : do not override base image entrypoint

php - Dockerfile FROM vs Docker-compose IMAGE

docker - Docker Hello World失败

apache-spark - 无法访问 Kubernetes 端点

docker - 如何在版本 2 docker-compose 定义文件中定义网络?

.net - 连接到 VPN 时,带有 Windows 容器的 Docker for Windows 无法正常工作

docker - 使用已安装的节点软件包的配置版本构建Docker镜像

适用于 Windows 的 Docker 和 docker-maven-plugin - "SSLException: Unrecognized SSL message, plaintext connection"错误