[英]In Docker for Windows, permissions denied for mkdir/chown
我正在开发一个幽灵博客并将其部署为 docker 容器。 由于我的项目的目标之一是使用实时数据开发主题和其他内容,因此我按照 ghost docker 映像的建议为 /var/lib/ghost 目录创建了一个卷挂载。
ghost docker 映像可以很好地安装驱动器,但是当它尝试 chown 文件时,它会收到权限被拒绝的错误。 我正在运行 Windows 10 的 Creator 更新和最新的 Windows Docker(即 Windows 10 Pro versin 1703 和 Docker 版本 17.03.1-ce-win5)
作为测试,我在家里和工作中都遵循了以下程序(我使用的是以前版本的 Windows 10):
docker-compose up
docker-compose.yml
version: '3' services: blog: image: ghost volumes: - ./blog:/var/lib/ghost ports: - "2368:2368"
在我的工作机器上,它会创建博客目录,并按照预期从幽灵博客中填充主题和内容。
在我的家用机器上,我收到此错误:
错误:对于博客无法启动服务博客:创建挂载源路径“/C/Users/joe/Projects/site/blog”时出错:mkdir /C/Users/joe/Projects/site/blog:权限被拒绝错误:遇到错误在提出项目的同时。
如果我自己创建目录,然后再次运行docker-compose.yml
, docker-compose.yml
出现此错误:
博客_1 | chown:更改“/var/lib/ghost”的所有权:权限被拒绝
site_blog_1 退出,代码为 1
挂载目录绝对有效,我已经运行了 Docker for Windows 中共享驱动器设置中显示的 alpine ls /data 示例。
我已经比较了 docker、虚拟网络、家庭和工作之间的目录中的设置——我能找到的唯一区别是因为工作在一个域上,并且具有不同的用户名,而我的 Windows 版本是1607.
我不知道这是一个错误,是当前 windows && docker 之间的不良交互,还是我在本地做错了什么。 我承认我倾向于后者,因为我在任何地方都找不到关于此的文档。
我在Windows 10上遇到这个问题已经有一段时间了。 解决方案是我在互联网上找到的一系列建议 - 假设您要共享的目录位于您的用户目录之下:
docker container run -p 80:80 -v C:\\Users\\YourName\\Development\\docker_examples:/usr/share/nginx/html --rm nginx
,它应该工作 如果您在 docker 中收到错误消息:
mkdir: can't create directory 'l': Permission denied
尝试在 Windows 上的共享文件夹中创建文件夹或文件时,这是给您的。
确保您拥有共享文件夹的完全控制权限,以实现此目的:
要检查您是否具有完全控制权限,请从 Windows 文件管理器转到网络,选择驱动器并尝试从所选文件夹中创建文件。
如果您收到错误消息,说您没有权限,则表示您有读取权限但没有写入权限。
在这种情况下,从网络路径中的文件夹中,右键单击并选择属性-> 选择“共享”选项卡-> 单击“高级共享”。
在“高级共享”窗口中,单击“权限”。
在权限窗口中,选择“完全控制”。
完成后,您可以返回 Docker 并尝试创建一个文件。
docker run -it -v "$(pwd):/myapp" node:16 sh
cd myapp
touch b.txt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.