Docker – 将数据从主机上的只读目录传送到容器中

我是Docker的新手,如果答案很明显,请耐心等待。

我试图让我的docker容器访问主机上的共享数据目录,它具有特定的组权限,对于目标用户组是只读的。

我已经尝试docker run -it -v /data:/data ubuntu /bin/bash与由此产生的错误docker: Error response from daemon: error while creating mount source path '/data': mkdir /data: permission denied 。 所以这显然是一个权限问题。

我在谷歌环顾的要点是,如果你绑定一个卷,你需要有读写权限。 所以我正在寻找一种替代方式,可能与docker volume

数据目录是巨大的,所以任何types的重复是不可行的。 另外,更改权限是不可能的。

系统信息:

docker Server Version: 17.03.1-ce

Operating System: Ubuntu 16.04.2 LTS


编辑:

所以我终于在@barat的有用评论之后find了它。

问题是,我试图在容器中安装的确切目录的权限设置方式只有特定组的成员才能读取内容。 我尝试了一切,从docker run -u userwithaccessdocker run --privilegeddocker run --privileged中添加一个用户,并专门分配有问题的组到该用户。 没有工作。

最后,解决scheme相对简单:

我的数据目录的父目录对每个人都有读权限,也就是不属于该组的成员的用户。 所以我能够安装它没有问题。 为了达到实际的数据,我把Dockerfile的用户添加到组中 ,并确保它具有相同的名称和GID 。 最后导航到数据目录并读取任何我想要的文件是没问题的。

所以我不确定我试图装载的目录是否是一个特殊的情况,或者是否一般情况下无法装载具有特定组访问权限的目录。 我发现这个解决方法,但是如果我想要的目录是/ ,我仍然没有解决scheme。

尝试这个:

 docker run -v /path/on/host:/path/on/container:ro my/image 

绑定挂载的默认行为是rw,但是您可以将其切换为只读(:ro)