我有一个使用 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