我正在开发一个 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):
- 在C:\users\joe\中创建一个Project\site目录
- 将docker-compose.yml文件放在目录下:
- 运行
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/