全部学科
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 临时存储
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码