我正在尝试从 Docker 容器内挂载 FUSE 虚拟文件系统,并将挂载点公开给主机。
Docker 在 Ubuntu 20.04 上通过 snap 安装
该软件是全新安装的Seafile(Dropbox 替代品),但我认为这个问题与 Docker、snap 和在 Ubuntu 上挂载文件系统更相关。对于它的价值,我在这里遵循官方说明。
在容器内部(当它成功运行时),一个脚本会挂载一个 FUSE 虚拟文件系统/seafile-fuse
,使存储在 Seafile 中的所有文件都可见。
docker-compose.yml 摘录:
version: '3.3'
services:
seafile:
image: seafileltd/seafile-mc:latest
container_name: seafile
volumes:
- /home/jonathan/seafile/seafile-data:/shared
- type: bind
source: /home/jonathan/seafile/seafile-fuse
target: /seafile-fuse
bind:
propagation: rshared
privileged: true
cap_add:
- SYS_ADMIN
这将导致:
ERROR: for seafile Cannot start service seafile: path /home/jonathan/seafile/seafile-fuse is mounted on /home but it is not a shared mount
我发现这个有点相关的答案暗示这个问题可能与在不同命名空间中运行的 docker 守护进程有关。但我无法让他的解决方案发挥作用。
我需要做什么来连接主机目录/home/jonathan/seafile/seafile-fuse
才能看到容器目录/seafile-fuse
?
奖金问题...
鉴于这是一个面向互联网的家庭服务器,这是否有必要成为一个特权容器?有更好的选择吗?
谢谢!!