专属
文档
插件
助手
邀请
顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单

文档

工具

功能
提交工单页面收录

帮助
轩辕镜像免费版

其他
关于我们网站地图
热门搜索:
do-snapshot

jtackaberry/do-snapshot

jtackaberry

用于对DigitalOcean Droplets进行快照、跨区域传输并管理灵活保留策略的工具,支持按时间间隔自动创建快照、跨区域复制及多阶段保留规则配置。

下载次数: 0状态:社区镜像维护者:jtackaberry仓库类型:镜像最近更新:2 年前
让 AI 帮你使用轩辕镜像? · 展开查看说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

轩辕镜像,加速的不只是镜像。点击查看
中文简介
标签下载
镜像标签列表与下载命令
轩辕镜像,加速的不只是镜像。点击查看

DigitalOcean Droplet 快照工具

do-snapshot.py 是一个简单的 Python 脚本,用于对 DigitalOcean Droplets 进行快照、传输到指定区域,并维护灵活的保留策略。

示例

以下是使用示例:

bash
python3 do-snapshot.py --token ~/.dotoken -s 1d -r lon1 -k 3d:1d -k 1w:1w -k 1m:2m -k 0d:6m

或使用 Docker 镜像:

bash
docker run -e DO_TOKEN=$(cat ~/.dotoken) jtackaberry/do-snapshot -s 1d -r lon1 -k 3d:1d -k 1w:1w -k 1m:2m -k 0d:6m

上述命令将:

  • 从 ~/.dotoken 文件读取 API 令牌
  • 每天对所有标记为 autosnapshot(默认标记)的 Droplet 进行一次快照
  • 将工具创建的所有快照传输到 lon1 区域(如果尚未存在)
  • 应用以下保留策略:
    • 对超过 1 天的快照,每 3 天保留一个
    • 对超过 1 周的快照,每周保留一个
    • 对超过 1 个月的快照,每月保留一个
    • 删除所有超过 6 个月的快照

注意事项

由于 DigitalOcean API 限制:

  1. 进行中的快照不可见,因此如果频繁运行工具,可能会在快照 pending 时触发另一个快照。解决方法:运行间隔不小于 1 小时。
  2. 只有完成的快照才能跨区域传输,因此如果某次调用创建了快照,传输步骤将在下次调用时执行。解决方法:运行频率高于快照间隔(例如,若设置 -s 1d,可每 4 小时运行一次,同时注意事项 1)。

工具自身限制:

  • 目前仅支持在线快照

DigitalOcean API 令牌

首先,获取 个人访问令牌。

可通过命令行直接传递令牌,但这会导致令牌(相当于密码)出现在 ps 输出中。因此建议传递包含令牌的文件路径,或通过 DO_TOKEN 环境变量导出。

在类 Unix 系统中:

bash
export DO_TOKEN=<你的令牌>

在 Windows 系统中:

cmd
set DO_TOKEN=<你的令牌>

保留策略

可通过多个 -k 开关构建复杂的保留策略。策略按快照年龄从新到旧的顺序执行,这意味着较旧策略可处理的快照数量由较新策略决定。因此,通常需要随着年龄增加而增大时间间隔。

例如,考虑参数 -k 2w:1w -k 1w:1m,其要求:

  1. 对超过 1 周的快照,每 2 周保留一个
  2. 对超过 1 个月的快照,每周保留一个

由于策略 1 先执行,当快照超过 1 个月时,策略 2 只能看到每 2 周一个的快照,因此无法满足每周保留一个的要求。

模拟功能

可使用 --simulate 选项模拟保留策略的效果,该选项按指定间隔(如 4 小时)模拟工具执行,持续指定时长(如 3 个月)。

以下示例模拟上述问题策略:

$ python3 do-snapshot.py -s 1d -k 2w:1w -k 1w:1m --simulate 4h:3m
[... 日志输出省略 ...]
Time                    Name
----------------------- --------------------------------------------------
2018-10-09T01:47:36Z    simulated-autosnapshot-20181009T014736Z
2018-10-23T01:47:36Z    simulated-autosnapshot-20181023T014736Z
2018-11-06T01:47:36Z    simulated-autosnapshot-20181106T014736Z
2018-11-20T01:47:36Z    simulated-autosnapshot-20181120T014736Z
2018-12-04T01:47:36Z    simulated-autosnapshot-20181204T014736Z
2018-12-18T01:47:36Z    simulated-autosnapshot-20181218T014736Z
2018-12-31T01:47:36Z    simulated-autosnapshot-20181231T014736Z
2019-01-01T01:47:36Z    simulated-autosnapshot-20190101T014736Z
2019-01-02T01:47:36Z    simulated-autosnapshot-20190102T014736Z
2019-01-03T01:47:36Z    simulated-autosnapshot-20190103T014736Z
2019-01-04T01:47:36Z    simulated-autosnapshot-20190104T014736Z
2019-01-05T01:47:36Z    simulated-autosnapshot-20190105T014736Z
2019-01-06T01:47:36Z    simulated-autosnapshot-20190106T014736Z

上述示例中,工具每天创建一个快照(-s 1d),最年轻的策略在快照超过 1 周后生效,因此最近一周(1 月初)保留每日快照。12 月的快照每 2 周保留一个,而 11 月和 10 月的快照尽管策略要求每周保留一个,但实际只能每 2 周保留一个。

使用方法

usage: do-snapshot.py [-h] [-t TAG] [-p PREFIX] [-r REGION] -s AGE
                      [-k INTERVAL:AGE] [--dryrun] [--token TOKEN]
                      [--simulate INTERVAL:DURATION] [--syslog] [-v]

可选参数:
  -h, --help            显示帮助信息并退出
  -t TAG, --tag TAG     对带有指定标签的 Droplet 进行快照(默认:autosnapshot)
  -p PREFIX, --prefix PREFIX
                        快照名称前缀(默认:$droplet-autosnapshot-)
  -r REGION, --region REGION
                        将快照传输到额外的区域(支持多个 -r)
  -s AGE, --snapshot AGE
                        若上次快照超过指定时间则创建新快照(后缀 m=月, w=周, d=天, h=小时)
  -k INTERVAL:AGE, --keep INTERVAL:AGE
                        对超过指定时间的快照,每间隔指定时间保留一个,删除其他(支持多个 -k 构建保留策略)
  --dryrun              不实际执行快照、删除或传输操作
  --token TOKEN         API 令牌或包含令牌的文件路径(也可通过 DO_TOKEN 环境变量传递)
  --simulate INTERVAL:DURATION
                        通过按指定间隔运行工具持续指定时长来测试保留策略(隐含 --dryrun)
  --syslog              记录日志到 syslog 而非 stderr
  -v, --verbose         增加日志详细程度

do-snapshot.py 对所有带有指定标签(如 prod 或 autosnapshot)的 Droplet 生效,因此需先为目标 Droplet 应用合适的标签。

依赖

do-snapshot.py 经 Python 3 测试,兼容 Python 2。唯一依赖是 requests 库。在 Ubuntu 或 Debian 系统中,可通过以下命令安装:

bash
sudo apt install python3-requests

在其他系统或平台,若已安装 pip,可执行:

bash
pip install requests

Kubernetes

以下示例清单展示如何通过 Kubernetes CronJob 调度快照:

yaml
apiVersion: v1
kind: Namespace
metadata:
  name: digitalocean
---
apiVersion: v1
kind: Secret
metadata:
  name: do-api-token
  namespace: digitalocean
type: Opaque
data:
  # Base64 编码的 Digital Ocean API 令牌:
  # set +o history
  # echo -n 'apitokengoeshere' | base64 -w0
  # set -o history
  token: U29ycnksIG5vIEFQSSB0b2tlbiBzdHVwaWRseSBjb21taXR0ZWQgdG8gZ2l0IGZvdW5kIGhlcmUuIDopCg==
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: snapshot-droplets
  namespace: digitalocean
spec:
  schedule: "23 */2 * * *"
  concurrencyPolicy: Forbid
  successfulJobsHistoryLimit: 1
  failedJobsHistoryLimit: 1
  jobTemplate:
    spec:
      template:
        spec:
          # 若尚未配置限制 uid/gid 的 PodSecurityPolicy,应取消以下注释
          # securityContext:
          #   runAsUser: ***
          #   runAsGroup: ***        
          containers:
          - name: do-snapshot
            image: jtackaberry/do-snapshot:latest
            env:
              - name: DO_TOKEN
                valueFrom:
                  secretKeyRef:
                    name: do-api-token
                    key: token
            args:
              - -s 1d
              - -r lon1
              - -k 3d:1d
              - -k 2w:5d
              - -k 0d:3w
              - -v
          restartPolicy: Never

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 do-snapshot 镜像标签

docker pull docker.xuanyuan.run/jtackaberry/do-snapshot:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull jtackaberry/do-snapshot:<标签>

更多 do-snapshot 镜像推荐

mirantis/ucp-csi-snapshotter logo

mirantis/ucp-csi-snapshotter

mirantis
暂无描述
50万+ 次下载
4 年前更新
jaegertracing/jaeger-agent-snapshot logo

jaegertracing/jaeger-agent-snapshot

jaegertracing
已弃用,详情参见https://github.com/jaegertracing/jaeger/issues/4739。
100万+ 次下载
1 年前更新
jaegertracing/jaeger-query-snapshot logo

jaegertracing/jaeger-query-snapshot

jaegertracing
暂无描述
100万+ 次下载
6 个月前更新
jaegertracing/all-in-one-snapshot logo

jaegertracing/all-in-one-snapshot

jaegertracing
暂无描述
10万+ 次下载
6 个月前更新
longhornio/csi-snapshotter logo

longhornio/csi-snapshotter

longhornio
CSI snapshotter是CSI(容器存储接口)的组件,用于管理容器存储卷的快照创建、删除等操作,实现容器数据的备份与恢复。
1000万+ 次下载
1 个月前更新
linuxserver/rsnapshot logo

linuxserver/rsnapshot

LinuxServer.io 社区镜像
基于rsync的文件系统备份工具,支持增量备份与多备份点管理,通过容器化部署实现高效空间利用,适用于本地及远程数据备份场景。
41 次收藏10万+ 次下载
17 天前更新

查看更多 do-snapshot 相关镜像

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

一键安装

一键安装 Docker

Linux Docker 一键安装

需要其他帮助?请查看我们的 常见问题 Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
jtackaberry/do-snapshot
教程轩辕镜像功能与使用教程
价格查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
官方公众号:源码跳动|官方技术交流群:51517718
官方公众号:源码跳动|官方技术交流群:|问题咨询请:提交工单
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.