Rsnapshot 是基于rsync的文件系统快照工具。它可以轻松创建本地机器和远程机器(通过SSH)的定期快照。代码尽可能使用硬链接,以大大减少所需磁盘空间。
!https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/rsnapshot.png
我们利用Docker manifest实现多平台支持。只需拉取 lscr.io/linuxserver/rsnapshot:latest 即可获取适合您架构的正确镜像,也可通过标签拉取特定架构的镜像。
支持的架构如下:
| 架构 | 可用 | 标签 |
|---|---|---|
| x86-64 | ✅ | amd64-<version tag> |
| arm64 | ✅ | arm64v8-<version tag> |
| armhf | ❌ |
启动容器后,您需要编辑 /config/rsnapshot.conf 配置文件。
快照根目录
rsnapshot默认配置将备份数据存储到 /.snapshots 卷。可在配置中修改此路径,但需确保容器已挂载相应的卷。
备份级别/间隔
此部分配置决定rsnapshot保留备份的方式。详情请参见 https://github.com/rsnapshot/rsnapshot/blob/master/README.md#configuration%E3%80%82
备份点
rsnapshot默认配置从 /data 卷备份数据。可在配置中修改此路径,但需确保容器已挂载相应的卷。
您需要编辑 /config/crontabs/root 来设置运行rsnapshot的cron任务。默认情况下未启用任何cron任务。示例基于 https://github.com/rsnapshot/rsnapshot/blob/master/README.md#configuration 提供。
以下是使用docker-compose或docker cli创建容器的示例。
yaml--- version: "2.1" services: rsnapshot: image: lscr.io/linuxserver/rsnapshot:latest container_name: rsnapshot environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC volumes: - /path/to/appdata:/config - /path/to/snapshots:/.snapshots #可选 - /path/to/data:/data #可选 restart: unless-stopped
bashdocker run -d \ --name=rsnapshot \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -v /path/to/appdata:/config \ -v /path/to/snapshots:/.snapshots `#可选` \ -v /path/to/data:/data `#可选` \ --restart unless-stopped \ lscr.io/linuxserver/rsnapshot:latest
容器通过运行时传递的参数进行配置(如上所示)。参数以冒号分隔,表示 <外部>:<内部>。例如,-p 8080:80 会将容器内的端口 80 暴露到主机的 8080 端口。
| 参数 | 功能 |
|---|---|
-e PUID=1000 | 用户ID - 详见下文说明 |
-e PGID=1000 | 组ID - 详见下文说明 |
-e TZ=Etc/UTC | 指定时区,详见 时区列表。 |
-v /config | 包含所有相关配置文件。 |
-v /.snapshots | 所有快照的存储位置。 |
-v /data | 待备份数据的存储位置。 |
您可以通过特殊前缀 FILE__ 从文件设置任何环境变量。
例如:
bash-e FILE__MYVAR=/run/secrets/mysecretvariable
这会根据 /run/secrets/mysecretvariable 文件的内容设置环境变量 MYVAR。
我们的所有镜像都支持使用可选的 -e UMASK=022 设置来覆盖容器内服务的默认umask。请注意,umask不是chmod,它基于其值减去权限而非添加。请在请求支持前阅读 umask 相关知识。
使用卷(-v 标志)时,主机OS和容器之间可能出现权限问题。通过指定用户 PUID 和组 PGID 可以避免此问题。
确保主机上的任何卷目录都归您指定的用户所有,权限问题将迎刃而解。
此处 PUID=1000 和 PGID=1000,可通过 id your_user 命令获取您的ID:
bashid your_user
示例输出:
textuid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=rsnapshot&query=%24.mods%5B%27rsnapshot%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml]([] "查看此容器的可用mods") https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=universal&query=%24.mods%5B%27universal%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml]([] "查看可用的通用mods")
我们发布了各种 https://github.com/linuxserver/docker-mods 以启用容器内的额外功能。上述动态徽章可访问此镜像的可用Mods(如有)以及可应用于任何LinuxServer.io镜像的通用Mods。
容器运行时的Shell访问:
bashdocker exec -it rsnapshot /bin/bash
实时监控容器日志:
bashdocker logs -f rsnapshot
容器版本号:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' rsnapshot
镜像版本号:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/rsnapshot:latest
我们的大多数镜像是静态、版本化的,需要更新镜像并重新创建容器才能更新内部应用。除部分例外(如nextcloud、plex),我们不建议或支持在容器内更新应用。请参阅上文 应用设置 部分了解是否推荐更新。
以下是更新容器的说明:
更新镜像:
所有镜像:
bashdocker-compose pull
单个镜像:
bashdocker-compose pull rsnapshot
更新容器:
所有容器:
bashdocker-compose up -d
单个容器:
bashdocker-compose up -d rsnapshot
可删除旧的悬空镜像:
bashdocker image prune
更新镜像:
bashdocker pull lscr.io/linuxserver/rsnapshot:latest
停止运行中的容器:
bashdocker stop rsnapshot
删除容器:
bashdocker rm rsnapshot
使用上述相同的docker run参数重新创建容器(如果正确映射到主机文件夹,/config 文件夹和设置将被保留)
可删除旧的悬空镜像:
bashdocker image prune
拉取最新标签镜像并使用相同环境变量替换:
bashdocker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower \ --run-once rsnapshot
可删除旧的悬空镜像:docker image prune
警告:我们不认可使用Watchtower作为现有Docker容器自动更新的解决方案。事实上,我们通常不鼓励自动更新。但是,对于忘记原始参数的容器,这是一个有用的一次性手动更新工具。长期来看,我们强烈建议使用 Docker Compose。
提示:我们推荐 Diun 用于更新通知。不推荐或支持其他自动更新容器的工具。
如需为开发目的或自定义逻辑对这些镜像进行本地修改:
bashgit clone https://github.com/linuxserver/docker-rsnapshot.git cd docker-rsnapshot docker build \ --no-cache \ --pull \ -t lscr.io/linuxserver/rsnapshot:latest .
可使用 multiarch/qemu-user-static 在x86_64硬件上构建ARM变体:
bashdocker run --rm --privileged multiarch/qemu-user-static:register --reset
注册后,可使用 -f Dockerfile.aarch64 指定要使用的dockerfile。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务