将 Fuse 安装绑定到 Docker 容器时出现权限问题

将 Fuse 安装绑定到 Docker 容器时出现权限问题

好的,我有一个有趣的问题,需要大家的帮助。

我正在使用“rclone mount”将远程目录挂载到我的主机(Ubuntu Server)。然后我想使用 Docker Compose 将远程挂载目录设置到 Docker 容器卷中。我尝试了不同的方法,但都导致某种形式的权限错误。

* 路径已简化,以便于遵循。

rclone 安装位于~/parent/remote

如果我尝试将其设置~/parent为音量,则会出现以下错误。

volumes:  
    - ./parent:/parent

# This results in the remote folder having all "?" as its permissions inside the container.

drwxr-xr-x 4 abc abc 4096 Apr 25 08:38 ..
d????????? ? ?   ?      ?            ? remote

如果我尝试将其设置~/parent/remote为音量,则会出现以下错误docker compose up

volumes:  
    - ./parent/remote:/remote

Error response from daemon: error while creating mount source path '~/parent/remote': mkdir ~/parent/remote: file exists

最后,我尝试使用具有传播设置的绑定挂载,但出现以下错误:

volumes: 
  - type: bind
    source: ./parent/remote
    target: /remote
    bind:
      propagation: shared

Error response from daemon: error while creating mount source path '~/parent/remote': mkdir ~/parent/remote: file exists

如何将rclone mount目录作为卷挂载到 Docker 容器中?

答案1

所以我了解到问题其实出在侧面rclone mount。添加--allow-other到 mount 命令允许其他人访问 Fuse Mount,而不仅仅是运行守护进程命令的用户。

这使得 Docker 可以将凭证传递给容器。

相关内容