全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-21 5 分钟 ✍️ juanwangdev

Volume 驱动与备份

Volume 驱动扩展了 Docker 存储能力,下面介绍驱动管理与备份方法。

Volume 驱动

查看驱动

Bash
# 查看可用驱动
docker volume ls

# 查看驱动详情
docker info | grep "Volume"

# 输出
Volume: local

本地驱动(默认)

Bash
# 创建本地卷
docker volume create my-data

# 存储在 /var/lib/docker/volumes/my-data/_data

远程驱动

Bash
# 使用 SSH 驱动
docker volume create \
  --driver vieux/sshfs \
  -o SSH_KEY_PASSWORD=pass \
  -o allow_other \
  ssh-volume

# 使用 NFS 驱动
docker volume create \
  --driver local \
  --opt type=nfs \
  --opt o=addr=192.168.1.100,rw \
  --opt device=:/path/to/share \
  nfs-volume

备份策略

完整备份

Bash
# 备份卷到 tar 包
docker run --rm \
  -v my-data:/data:ro \
  -v $(pwd):/backup \
  alpine \
  tar czf /backup/backup-$(date +%Y%m%d).tar.gz -C /data .

增量备份

Bash
# 使用 rsync 增量备份
docker run --rm \
  -v my-data:/data:ro \
  -v $(pwd):/backup \
  alpine/rsync \
  -av /data/ /backup/latest/

自动化备份脚本

Bash
#!/bin/bash
# backup.sh
VOLUME=$1
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d_%H%M%S)

docker run --rm \
  -v ${VOLUME}:/data:ro \
  -v ${BACKUP_DIR}:/backup \
  alpine \
  tar czf /backup/${VOLUME}-${DATE}.tar.gz -C /data .

echo "Backup completed: ${VOLUME}-${DATE}.tar.gz"

恢复操作

Bash
# 从备份恢复
docker volume create my-data-restore

docker run --rm \
  -v my-data-restore:/data \
  -v $(pwd):/backup \
  alpine \
  tar xzf /backup/my-data-20240101.tar.gz -C /data

# 验证恢复
docker run --rm -v my-data-restore:/data alpine ls /data

定期备份

Bash
# crontab 配置
# 每天凌晨2点备份
0 2 * * * /path/to/backup.sh my-data

# 每周日完整备份,其他增量
0 2 * * 0 /path/to/backup.sh my-data full
0 2 * * 1-6 /path/to/backup.sh my-data incremental

清理旧备份

Bash
# 保留最近7天备份
find /backup -name "*.tar.gz" -mtime +7 -delete

# 或使用 Docker 卷清理
docker volume prune -f --filter "until=168h"

监控卷使用

Bash
# 查看卷大小
docker run --rm -v my-data:/data alpine du -sh /data

# 查看卷详情
docker volume inspect my-data

# 查看磁盘使用
docker system df -v

要点总结

  • 默认使用 local 驱动,支持 NFS、SSH 等远程驱动
  • 使用临时容器 + tar 打包实现卷备份
  • 增量备份使用 rsync 减少备份体积
  • crontab 自动化定期备份,定期清理旧备份
  • docker system df -v 监控卷磁盘使用情况

📝 发现内容有误?点击此处直接编辑

← 上一篇 Tmpfs 临时存储
下一篇 → 存储驱动选择
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库