创建安装源路径'/host_mnt/c/Users/xxx/redis.conf'时出错:mkdir / host_mnt / c / Users / xxx:权限被拒绝

时间:2018-10-12 13:58:17

标签: linux docker redis

我正在寻找与我的类似的问题,但尚未找到好的解决方案。我正在尝试设置我的环境。

我们首先要设置的是一名搬运工
docker run -d -p 9000:9000 portainer / portainer

然后我们尝试设置Redis
docker pull redis

启动Docker容器
docker run -d --name redis1 -v C:\ Users \ xxx \ docker \ redis.conf:/etc/redis.conf -p 6379:6379 redis:latest

但是却收到了:

  

C:\ Program Files \ Docker \ Docker \ Resources \ bin \ docker.exe:错误   来自守护程序的响应:创建装入源路径时出错   '/host_mnt/c/Users/xxx/docker/redis.conf':mkdir   / host_mnt / c / Users / xxx:权限被拒绝。

我的设置信息

PS C:\> docker info
Containers: 3
 Running: 1
 Paused: 0
 Stopped: 2
Images: 3
Server Version: 18.06.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.93-linuxkit-aufs
Operating System: Docker for Windows
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.934GiB
Name: linuxkit-00155da11105
ID: KNBR:IKUS:M4JG:3XNK:FAT6:UNJI:NIFE:HWUA:2KXY:ULVW:CIUW:E4TH
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 28
 Goroutines: 51
 System Time: 2018-10-12T13:26:05.2128058Z
 EventsListeners: 1
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

我已经将共享权限授予了我的计算机,我也是该计算机的管理员。我在做什么错了?

2 个答案:

答案 0 :(得分:1)

我发现一个解决方法是创建一个新用户帐户,该帐户的用户名与您的AzureAD帐户相同,但没有AzureAD前缀。现在可以了!
https://tomssl.com/2018/01/11/sharing-your-c-drive-with-docker-for-windows-when-using-azure-active-directory-azuread-aad/

答案 1 :(得分:1)

遇到类似的问题(也使用Windows上的AzureAD帐户),我也可以通过创建另一个具有不同名称的非管理员用户来使其工作

当Docker用户不是管理员时,您需要分别授予对所需文件夹的访问权限。我注意到您需要包括他们的父目录,直到您的主目录。

也就是说,如果要授予对C:/Users/You/Projects/Acme/ShareThis的访问权限,则需要添加两个权限:

  • C:/Users/You/Projects中,码头用户仅需要列表目录权限。这将继承所有子文件夹和-file,包括Acme
  • C:/Users/You/Projects/Acme/ShareThis中需要完全访问或只读访问,具体取决于您的需求。

您可以通过右键单击目录,然后单击“ <属性>属性> 安全性”标签>“ 编辑”按钮> 添加来设置这些权限。 .. 按钮。输入泊坞用户的名称,然后按 OK 。按下 OK 退出。

此外,请确保未使用Windows的EFS(加密文件系统)对访问的文件进行加密,Docker无法识别它们。但是,在docker run启动期间,这给我带来了一个稍微不同的错误:

  

cp:无法打开'/directory/./file':权限被拒绝