废话不多说,直接上图,懂的都懂
以下命令均需要在root用户下执行
sudo su root
设置共享挂载:
mount --make-shared /volume1
#这行命令需要在计划任务添加触发任务开机自启以root用户执行
这个命令的目的是将 /volume1 挂载点设置为共享挂载(shared mount)。
具体要看你要挂载的目录在哪个volume
共享挂载的目的:
在 Linux 上,挂载点可以有不同的 "传播模式"(propagation mode)。这些模式决定了挂载点的变动(如新增、删除挂载)是否能够传播到其他挂载点,或者从其他挂载点传播回来。--make-shared 选项就是设置这个传播模式的一种。
当使用 --make-shared 选项时,挂载点上的任何变动(比如新增或移除的挂载)都会传播到使用该挂载点的其他挂载。简单来说:
共享挂载(shared mount):允许挂载的变化在容器和主机之间传播。这意味着如果你在容器内部挂载了某个目录,主机也会知道这个挂载的发生,反之亦然。
为什么要用 --make-shared?
你在使用 Docker 时,如果你在容器中进行挂载操作(比如 rclone 挂载一个远程存储),如果挂载点没有设置为共享模式,那么这个挂载只会在容器内部生效,宿主机无法感知到这些挂载。因此,如果需要容器内的挂载在宿主机上可见,那么就需要将宿主机的挂载点设置为共享挂载。
什么时候需要 --make-shared?
多容器之间共享挂载点:如果你希望在多个容器之间共享一个挂载点,并且希望这些容器可以感知挂载点的变化。
容器内挂载影响主机:如果你希望容器内部的挂载(比如通过 rclone 挂载的云存储)能够影响到主机上的文件系统。
复杂的存储架构:在一些复杂的存储架构中(例如使用 Kubernetes 和 Docker 的环境中),共享挂载有时是必需的。
放到同一个网络组
docker network create rclone_network
启动容器
alist容器
docker network connect rclone_network xhofe-alist-2
#假设你已经弄好了alist容器
rclone容器
docker run -d --name rclone2 --network rclone_network \
--volume /volume1/docker/rclone1/config:/config \
--volume /volume1/docker/rclone1/pan:/data:shared \
--device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined \
rclone/rclone \
mount webdav:/ /data \
--allow-other \
--allow-non-empty \
--vfs-cache-mode writes \
--config /config/rclone.conf
示例运行
rclone.conf可以由其他rclone创建后复制过来,也可以手动写
这里贴个webdav的
[webdav]
type = webdav
url = http://xhofe-alist-2:5244/dav
vendor = other
user = admin
pass = G3y4mqNG319TJV3yNyGeEW9beoh1695YjMmbjKo
密码需要在客户端先加密在填写
rclone obscure abcdefg #abcd记得替换
最终成品:
Comments 3 条评论
你好,按照教程搭建后,启动rclone报错,内容如下:
Failed to create file system for "webdav:/"”: couldn’t decryptpassword: base64 decode failed when revealing password – is it obscured?: illegal base64data at input byte 13
不知道是哪里出错,请指教
我可以问一下为什么该网站无法再访问吗?
https://docker-mirrors.mjjman.com/Onedrive1/%E7%B3%BB%E7%BB%9F%E9%95%9C%E5%83%8F/OPENWRT/%E5%B0%8F%E7% %B3%20BE%207000 是
&
https://sharelist.mjjman.com/