58 lines
1.2 KiB
Markdown
58 lines
1.2 KiB
Markdown
|
|
目录结构
|
|||
|
|
├── Dockerfile
|
|||
|
|
├── entrypoint.sh
|
|||
|
|
├── requirements.txt
|
|||
|
|
├── backup.py
|
|||
|
|
├── restore.py
|
|||
|
|
├── utils.py
|
|||
|
|
├── config.yaml
|
|||
|
|
```i
|
|||
|
|
构建和运行容器
|
|||
|
|
构建镜像:
|
|||
|
|
bash
|
|||
|
|
复制代码
|
|||
|
|
docker build -t postgres-backup:latest .
|
|||
|
|
运行容器:
|
|||
|
|
步骤 1:生成加密密钥
|
|||
|
|
安装 cryptography 库(如果尚未安装):
|
|||
|
|
|
|||
|
|
bash
|
|||
|
|
复制代码
|
|||
|
|
pip install cryptography
|
|||
|
|
生成 AES-256 位加密密钥:
|
|||
|
|
|
|||
|
|
bash
|
|||
|
|
复制代码
|
|||
|
|
python generate_key.py AES-256 /path/to/your/encryption.key
|
|||
|
|
步骤 2:设置文件权限
|
|||
|
|
bash
|
|||
|
|
复制代码
|
|||
|
|
chmod 600 /path/to/your/encryption.key
|
|||
|
|
步骤 3:运行 Docker 容器
|
|||
|
|
bash
|
|||
|
|
复制代码
|
|||
|
|
docker run -d \
|
|||
|
|
--name postgres-backup-container \
|
|||
|
|
-v /path/to/your/config.yaml:/app/config.yaml \
|
|||
|
|
-v /path/to/your/encryption.key:/app/encryption.key \
|
|||
|
|
-e DB_HOST=your_db_host \
|
|||
|
|
-e DB_USER=your_db_user \
|
|||
|
|
-e DB_NAME=your_db_name \
|
|||
|
|
postgres-backup:latest
|
|||
|
|
|
|||
|
|
请根据您的实际数据库连接信息替换 your_db_host、your_db_user 和 your_db_name。
|
|||
|
|
|
|||
|
|
运行示例
|
|||
|
|
备份
|
|||
|
|
手动执行备份:
|
|||
|
|
|
|||
|
|
bash
|
|||
|
|
复制代码
|
|||
|
|
python /app/backup.py run_backup
|
|||
|
|
恢复
|
|||
|
|
手动执行恢复:
|
|||
|
|
|
|||
|
|
bash
|
|||
|
|
复制代码
|
|||
|
|
python /app/restore.py run_restore
|