windows - 在 Docker for Windows 中,mkdir/chown 的权限被拒绝

标签 windows docker permissions

我正在开发一个 ghost 博客并将其部署为 docker 容器。由于我项目的目标之一是使用实时数据开发主题和其他内容,因此我按照 ghost docker 图像的建议为/var/lib/ghost 目录创建了一个卷安装。

ghost docker 镜像可以很好地挂载驱动器,但是当它尝试对文件进行 chown 时,会出现权限被拒绝的错误。我正在运行 Windows 10 的 Creator 更新和最新的 Docker for Windows(即 Windows 10 Pro versin 1703 和 Docker 版本 17.03.1-ce-win5)

作为测试,我在家里和工作中都遵循了这个过程(我使用的是以前版本的 Windows 10):

  1. 在C:\users\joe\中创建一个Project\site目录
  2. 将docker-compose.yml文件放在目录下:
  3. 运行docker-compose up

docker-compose.yml

version: '3'
services:
  blog:
    image: ghost
    volumes:
      - ./blog:/var/lib/ghost
    ports:
      - "2368:2368"

在我的工作机器上,它创建了博客目录,并按照幽灵博客的预期使用主题和内容填充它。

在我家的机器上,我得到这个错误:

ERROR: for blog Cannot start service blog: error while creating mount source path '/C/Users/joe/Projects/site/blog': mkdir /C/Users/joe/Projects/site/blog: permission denied ERROR: Encountered errors while bringing up the project.

如果我自己创建目录,然后再次运行 docker-compose.yml,我会得到这个错误:

blog_1 | chown: changing ownership of '/var/lib/ghost': Permission denied

site_blog_1 exited with code 1

挂载目录确实有效,我已经运行了 alpine ls/data 示例,显示在 Docker for Windows 的共享驱动器设置中。

我比较了 docker 中的设置、虚拟网络中的设置、家庭和工作目录之间的设置——我能找到的唯一区别是因为工作在一个域上,并且有不同的用户名,而且我的版本Windows 的数量是 1607。

我不知道这是一个错误,当前windows && docker 之间的不良交互,还是我在本地做错了什么。我承认我倾向于后者,因为我在任何地方都找不到关于此的文档。

最佳答案

这个问题(我不知何故错过了)Error mounting a config file into the container

回答问题。

我取消共享 C,重新共享它,但问题仍然存在。 我单击“重置凭据”,然后重新共享它(输入我的密码)并且成功了。

关于windows - 在 Docker for Windows 中,mkdir/chown 的权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43880764/

相关文章:

windows - Julia 中的 CUDA 测试 - GPU 利用率非常低

windows - 一个进程的 read() 可以看到另一个进程的部分 write() 吗?

php - OpenCV & PHP & XAMPP

c# - Wix:从 C# 自定义操作传回属性

python - 在Docker Selenium Python中使用代理不起作用

docker - 麦克 |从 VirtualBox 机器上的另一个应用程序访问部署在 Docker 上的应用程序

tomcat - Dockerfile CMD 不启动服务

Linux tar 命令忽略权限被拒绝的文件

android - Cordova 运行时权限

ubuntu - Amazon Ubuntu 实例上的权限问题