lftpsync镜像是一个基于lftp工具的轻量级文件同步解决方案,专为高效、灵活的跨服务器/协议文件镜像同步设计。该镜像集成lftp的核心功能,支持FTP、FTPS、HTTP、HTTPS、SFTP等多种文件传输协议,可实现断点续传、增量同步、定时任务等高级同步需求,广泛应用于开源软件镜像站点维护、服务器数据备份、跨环境文件分发等场景。
通过docker run命令直接触发单次同步任务,需指定源地址(SRC)、目标地址(DST)及必要的同步参数。
基础示例(FTP协议同步到本地目录)
bashdocker run --rm \ -e SRC="ftp://ftp.example.com/source" \ # 源地址(支持多种协议) -e DST="/data/mirror" \ # 容器内目标路径(需挂载宿主机目录) -v /path/to/local/dst:/data/mirror \ # 挂载宿主机目录作为同步目标 ustclug/lftpsync:latest
高级示例(SFTP协议+增量同步+排除文件)
bashdocker run --rm \ -e SRC="sftp://user@remote.server:/data/source" \ # SFTP源地址(格式:sftp://用户@主机:路径) -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 \ ustclug/lftpsync:latest
通过挂载crontab配置文件实现定时同步,配置格式遵循标准crontab语法,任务命令需调用内置的sync.sh脚本。
步骤1:创建crontab配置文件(如/host/crontab.txt)
crontab# 每天凌晨2点执行同步(语法:分 时 日 月 周 命令) 0 2 * * * /sync.sh
步骤2:启动容器并挂载配置文件
bashdocker run -d \ --name lftpsync-cron \ -e SRC="http://mirror.ustc.edu.cn/ubuntu" \ # 上游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用户) ustclug/lftpsync:latest
yamlversion: '3' services: lftpsync: image: ustclug/lftpsync:latest container_name: lftpsync restart: always environment: - SRC="https://upstream.example.com/packages" # 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 | 同步源地址(必填),格式:协议://[用户:密码@]主机[:端口]/路径 | sftp://user:pass@server.com:/data/src |
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 http://proxy.example.com:8080
挂载配置文件启动容器:
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 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务