我正在尝试在运行ubuntu18.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对我想装入的驱动器没有权限。
我试过的是:
$ sudo groupadd docker && sudo usermod -aG docker $USERsudo运行码头--privileged运行码头--user $(id -u):$(id -g)运行码头USER $(id -u):$(id -g) (插入实际值)在dockerfile中设置用户是否有方法在此设置中挂载卷或更改dockerfile以正确访问我的个人用户的驱动器?任何帮助都将不胜感激。
在一个侧面,在码头,我只需要重新访问的卷,以防止任何改变。
发布于 2021-02-02 10:41:34
容器由Docker守护进程创建,它作为root运行。这就是为什么即使您以自己的用户身份运行容器或docker命令,它仍然无法工作。
您可以使用以自己的用户身份运行守护进程。 (无根模式)。
您还可以考虑更改挂载选项(在主机系统上),以便主机上的root用户能够访问。如何做到这一点取决于文件系统的类型。
https://stackoverflow.com/questions/66007904
复制相似问题