以下是使用 Docker 和 systemd 两种方法挂载 Rclone 文件系统的详细指南,结合 MinIO 对象存储的配置示例:
一、通过 systemd 挂载 Rclone 文件系统
1. 创建 Rclone 配置文件
ini
# /root/.config/rclone/rclone-minio.conf
[minio]
type = s3
provider = Minio
access_key_id = <Access Key>
secret_access_key = <Secret Key>
endpoint = http://<对象存储网址>:<对象存储端口>/
2. 创建 systemd 服务文件
bash
sudo nano /etc/systemd/system/rclone-minio.service
ini
[Unit]
Description=Mount minio using rclone
After=network-online.target docker.service
[Service]
Type=forking
ExecStartPre=/usr/bin/mkdir -pv /mnt/rclone/minio
ExecStart=/usr/bin/rclone mount minio: /mnt/rclone/minio \
--config /root/.config/rclone/rclone-minio.conf \
--header "Referer:" \
--multi-thread-streams 4 \
--buffer-size 512M \
--vfs-fast-fingerprint \
--vfs-cache-mode full \
--no-modtime \
--file-perms 0777 \
--copy-links \
--allow-other \
--allow-non-empty \
--umask 000 \
--daemon \
--cache-dir /root/rclone-cache
ExecStop=/bin/fusermount -u /mnt/rclone/minio
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
3. 启用并启动服务
bash
sudo systemctl daemon-reload
sudo systemctl enable rclone-minio
sudo systemctl start rclone-minio
二、通过 Docker 挂载 Rclone 文件系统
1. 使用 Docker Compose 配置
yaml
version: "3.6"
services:
mount-minio:
entrypoint:
- "sh"
- "-c"
image: mumiehub/rclone-mount
container_name: "mount-minio"
command:
- "/usr/local/sbin/rclone -v --config /config/rclone-minio.conf mount minio: /media/docker/volume/minio --allow-other --allow-non-empty --header Referer: --multi-thread-streams 4 --buffer-size 512M --vfs-fast-fingerprint --vfs-cache-mode full --no-modtime --file-perms 0777 --copy-links --dir-cache-time 48h --poll-interval 5m --umask 000"
cap_add:
- SYS_ADMIN
devices:
- "/dev/fuse:/dev/fuse"
environment:
- ConfigName=rclone-minio.conf
- MountPoint=/media/docker/volume/minio
- RemotePath=minio:
hostname: "debian-msx-20k6a00dcd"
ipc: "private"
logging:
driver: "json-file"
options:
max-file: "3"
max-size: "10m"
network_mode: "host"
privileged: true
restart: "always"
security_opt:
- apparmor:unconfined
- label=disable
stdin_open: true
tty: true
volumes:
- /media/docker/volume/minio:/media/docker/volume/minio:rw,rshared
- /root/.config/rclone:/config
working_dir: "/"
2. 启动容器
bash
docker-compose up -d
3. 验证挂载
bash
# 查看挂载状态
df -h | grep minio
# 卸载命令(需谨慎使用)
sudo fusermount -u -z /media/docker/volume/minio
三、关键参数说明
--vfs-cache-mode full
:启用完整缓存模式,提升读写性能--allow-other
:允许非 root 用户访问挂载目录--buffer-size 512M
:设置 512MB 缓冲区优化大文件传输network_mode: host
:Docker 容器直接使用宿主机网络
四、常见问题处理
- 权限问题 :确保容器有
SYS_ADMIN
能力和/dev/fuse
设备访问权限 - 挂载失败:检查 Rclone 配置文件的 endpoint 和密钥是否正确
- 性能优化 :调整
--multi-thread-streams
和--buffer-size
参数
通过以上两种方法,可灵活选择 systemd 系统级挂载或 Docker 容器化方案实现 Rclone 文件系统的持久化挂载。