使用 smb 共享作为 docker 卷

使用 smb 共享作为 docker 卷

我有一台 Debian 11 服务器,其下有多个 smb 共享/samba/。现在我想在这台机器上的 docker 容器内运行名为 Syncthing 的文件同步软件的多个实例,因此每个 smb 共享都有一个 Syncthing 容器。

我很困惑如何让 docker 容器访问主机系统上的那些目录。


    volumes:
      - /samba/userX:/userX-data

简单地将 smb 目录映射为卷(使用 docker-compose)是一个坏主意,因为通过 docker 容器的每个文件创建/修改都是以 root 身份完成的,因此会弄乱主机上的权限(主机需要正确的 smb 权限)。


//127.0.0.1/userX /mnt/smb/user1 cifs username=userX,password=<passwd> 0 0

我能想到的唯一解决方案是将 SMB 共享从主机系统安装到主机系统上,然后映射/mnt/smb/user到适当的容器中。

但我觉得这有点奇怪,而且不必要地通过网络访问文件系统不会严重影响性能吗?还是说这无关紧要,因为所有内容都保留在一台物理服务器上?

Syncthing 作为存储应用程序,建议“直接”访问存储...

非常感谢任何替代方案和想法!

相关内容