我正在尝试将卷安装到运行 ubuntu 18.04 的计算集群上的 docker。该卷位于我的用户有权访问的已挂载文件系统上,但 sudo 没有。我对这个集群有 sudo 权限。我使用这个命令:
docker run -it --mount type=bind,source="$(pwd)"/logs,target=/workspace/logs tmp:latest bash
结果是这个错误:
docker: Error response from daemon: invalid mount config for type "bind": stat /home/logs: permission denied.
See 'docker run --help'.
在我的本地机器上安装卷工作正常,其中 sudo 和我都可以访问我想要安装的驱动器,这让我相信问题确实在于服务器上的 sudo 没有我想要的驱动器的权限挂载到docker中。
我尝试过的:
运行安装后步骤 $ sudo groupadd docker && sudo usermod -aG docker $USER
使用 sudo
运行 docker
使用 --privileged
运行 docker
使用 --user $(id -u):$(id -g)
运行 docker
在 dockerfile 中使用 USER $(id -u):$(id -g)
设置用户(插入实际值)
有没有办法在此设置中挂载卷或更改 dockerfile 以使用我的个人用户正确访问驱动器?任何帮助将不胜感激。
顺便说一句,在 docker 中,我只需要对卷进行读取访问,以防发生任何变化。
答案 0 :(得分:0)
容器由以 root 运行的 Docker 守护进程创建。这就是为什么即使您以自己的用户身份运行容器或 docker
命令它仍然不起作用的原因。
您或许可以run the daemon as your own user(无根模式)。
您还可以考虑更改挂载选项(在主机系统上),以便主机上的 root
用户确实具有访问权限。如何做到这一点取决于文件系统的类型。