ustcmirror/lftpsynclftpsync镜像是一个基于lftp工具的轻量级文件同步解决方案,专为高效、灵活的跨服务器/协议文件镜像同步设计。该镜像集成lftp的核心功能,支持FTP、FTPS、HTTP、HTTPS、SFTP等多种文件传输协议,可实现断点续传、增量同步、定时任务等高级同步需求,广泛应用于开源软件镜像站点维护、服务器数据备份、跨环境文件分发等场景。
通过docker run命令直接触发单次同步任务,需指定源地址(SRC)、目标地址(DST)及必要的同步参数。
bashdocker run --rm \ -e SRC="[***]" \ # 源地址(支持多种协议) -e DST="/data/mirror" \ # 容器内目标路径(需挂载宿主机目录) -v /path/to/local/dst:/data/mirror \ # 挂载宿主机目录作为同步目标 ***/lftpsync:latest
bashdocker run --rm \ -e SRC="s[***]" \ # SFTP源地址(格式:s[***] -e DST="/data/mirror" \ -e SYNC_OPTS="-n -X *.log -P 5" \ # 同步选项:-n(增量)、-X(排除.log文件)、-P(5个并发连接) -v /path/to/ssh-key:/root/.ssh/id_rsa:ro \ # SFTP协议需挂载SSH私钥(只读权限) -v /path/to/local/dst:/data/mirror \ ***/lftpsync:latest
通过挂载crontab配置文件实现定时同步,配置格式遵循标准crontab语法,任务命令需调用内置的sync.sh脚本。
/host/crontab.txt)crontab# 每天凌晨2点执行同步(语法:分 时 日 月 周 命令) 0 2 * * * /sync.sh
bashdocker run -d \ --name lftpsync-cron \ -e SRC="[***]" \ # 上游Ubuntu镜像源 -e DST="/data/ubuntu-mirror" \ -e SYNC_OPTS="-c -n -L" \ # -c(断点续传)、-n(增量)、-L(跟随符号链接) -v /host/ubuntu-mirror:/data/ubuntu-mirror \ # 宿主机镜像存储目录 -v /host/crontab.txt:/etc/crontabs/root:ro \ # 挂载crontab配置(root用户) ***/lftpsync:latest
yamlversion: '3' services: lftpsync: image: ***/lftpsync:latest container_name: lftpsync restart: always environment: - SRC="[***]" # HTTPS源地址 - DST="/data/mirror" - SYNC_OPTS="-n -X .git -t 300" # 排除.git目录,超时300秒 - CRON_ENABLE="true" # 启用定时任务(默认true,单次同步设为false) volumes: - /local/mirror:/data/mirror # 本地存储目录 - ./crontab.txt:/etc/crontabs/root:ro # 定时任务配置 # SFTP协议需额外挂载SSH密钥(如使用SFTP源) # - ./ssh_key:/root/.ssh/id_rsa:ro
| 参数名 | 描述 | 示例值 |
|---|---|---|
SRC | 同步源地址(必填),格式:协议://[用户:密码@]主机[:端口]/路径 | s[***] |
DST | 容器内目标路径(必填),需通过-v挂载到宿主机 | /data/mirror |
SYNC_OPTS | lftp mirror命令选项,多个选项用空格分隔 | -c -n -X *.tmp -P 5(断点续传、增量、排除.tmp、5并发) |
CRON_ENABLE | 是否启用定时任务 | true(默认,启用)/false(单次同步) |
LFTP_TIMEOUT | 传输超时时间(秒) | 300(默认300秒) |
| 选项 | 描述 |
|---|---|
-c | 断点续传(继续中断的传输) |
-n | 增量同步(仅下载新文件或大小/时间变化的文件) |
-r | 递归同步子目录 |
-X <pattern> | 排除匹配模式的文件/目录(如-X *.log排除.log文件) |
-P <num> | 设置并发连接数(默认5) |
-L | 跟随符号链接(同步链接指向的实际文件) |
-t <sec> | 超时时间(秒) |
如需调整lftp全局配置(如代理、被动模式、重试次数等),可通过挂载/etc/lftp.conf文件实现。示例配置文件(custom-lftp.conf):
conf# 启用被动模式(FTP默认推荐) set ftp:passive-mode yes # 设置网络超时时间(秒) set net:timeout 300 # 设置最大重试次数 set net:max-retries 3 # 配置HTTP代理(如需通过代理访问源站) set proxy [***]
挂载配置文件启动容器:
bashdocker run --rm \ -v /path/to/custom-lftp.conf:/etc/lftp.conf:ro \ # 自定义lftp配置 -e SRC="[***]" \ -e DST="/data/mirror" \ -v /path/to/local/dst:/data/mirror \ ***/lftpsync:latest
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务