1 unstable release
new 0.2.1 | Feb 27, 2025 |
---|
#269 in Development tools
30KB
689 lines
Docker Container Data Backup Tool
一个用于备份和恢复 Docker 容器数据的命令行工具。
功能特点
- 支持备份和恢复 Docker 容器的数据卷
- 支持命令行参数和交互式操作
- 使用 XZ 压缩算法进行高效压缩
- 支持自定义配置文件
- 支持命令行补全(Bash/Zsh/Fish/PowerShell)
安装
确保你的系统已安装 Rust 工具链,然后执行:
cargo install --path .
使用方法
列出可用的容器
rdbkp2 list
备份容器数据
交互式模式:
rdbkp2 backup -i
命令行模式:
rdbkp2 backup -c container_name -o /path/to/backup/dir
恢复容器数据
交互式模式:
rdbkp2 restore -i
命令行模式:
rdbkp2 restore -c container_name -i /path/to/backup/file
命令行补全
生成命令行补全脚本,支持多种 shell:
# 生成 Bash 补全脚本
rdbkp2 completions bash > ~/.local/share/bash-completion/completions/rdbkp2
# 生成 Zsh 补全脚本
rdbkp2 completions zsh > ~/.zsh/_rdbkp2
# 生成 Fish 补全脚本
rdbkp2 completions fish > ~/.config/fish/completions/rdbkp2.fish
# 生成 PowerShell 补全脚本
# Windows PowerShell
mkdir -p $PROFILE\..\Completions
rdbkp2 completions powershell > $PROFILE\..\Completions\rdbkp2.ps1
启用补全功能
Bash
将以下内容添加到 ~/.bashrc
或 ~/.bash_profile
:
source ~/.local/share/bash-completion/completions/rdbkp2
Zsh
将补全脚本放置在正确的位置后,确保在 ~/.zshrc
中启用了补全功能:
autoload -Uz compinit
compinit
Fish
Fish shell 会自动加载 ~/.config/fish/completions
目录下的补全脚本,无需额外配置。
PowerShell
在 PowerShell 配置文件中添加:
. $PROFILE\..\Completions\rdbkp2.ps1
配置文件
默认配置文件位于 config.toml
,可以自定义以下设置:
# 备份文件的默认输出目录
backup_dir = "./backups"
# Docker 相关配置
[docker]
# Docker daemon 的地址
host = "unix:///var/run/docker.sock"
# 是否使用 TLS
tls = false
# 证书路径 (如果使用 TLS)
# cert_path = "/path/to/cert"
命令行参数
备份命令 (backup)
-c, --container
: 容器名称或 ID-o, --output
: 输出目录-i, --interactive
: 使用交互式模式
恢复命令 (restore)
-c, --container
: 容器名称或 ID-i, --input
: 备份文件路径-i, --interactive
: 使用交互式模式
列表命令 (list)
无参数,显示所有可用的容器。
补全命令 (completions)
shell
: 指定 shell 类型(bash/zsh/fish/powershell)
注意事项
- 确保有足够的磁盘空间用于备份
- 建议在恢复数据之前先备份当前数据
- 需要有访问 Docker daemon 的权限
- Windows 用户需要确保 Docker Desktop 已启动
Dependencies
~30–44MB
~798K SLoC