使用 FUSE 挂载目录作为 docker 卷

使用 FUSE 挂载目录作为 docker 卷

我有一个使用 FUSE 安装的挂载点 (/mnt/xyz),我想将其用作 docker 卷 docker run image -v /mnt/xyz/container-dir:/container-dir

但我得到了错误 docker: Error response from daemon: error while creating mount source path '/mnt/xyz/container-dir': mkdir /mnt/xyz: file exists.

运行相同的图像docker run image -v /mnt/tmp:/container-dir成功了,但是我想要远程目录中的文件,而不是本地的临时实例上的文件。

更多信息:该实例是运行 Ubuntu 18.04 的 Google Cloud VM。挂载目录是 FUSE 挂载的 Google Drive,可访问且可写入。

任何帮助或想法都将不胜感激...

答案1

虽然这是一个老问题,但我最近也遇到了同样的问题。它试图将 fuse 挂载内的目录用作 docker-compose 中的卷。fuse 挂载是由 seadrive-daemon(来自 Seafile 项目)创建的,但找到的解决方案非常标准。

问题是 root 没有权限访问 fuse 安装。您可以通过以 root 身份登录并执行ls有关文件夹的简单操作来检查这一点。您需要使用选项“allow_root”安装 fuse 驱动器。无论是在 中,/etc/fstab还是在我的情况下,使用 将该选项传递给 seadrive-daemon -o allow_root

为了能够以非 root 用户身份使用该选项,您必须通过取消注释或添加以下行allow_root来启用它:/etc/fuse.conf

user_allow_other

相关内容