Files
nexus/wiki/entities/Docker卷.md

2.5 KiB
Raw Blame History

title, tags, date
title tags date
Docker卷
docker
storage
container
2026-04-26

Docker卷 (Docker Volume)

Definition

Docker 卷是 Docker 容器用于持久化数据的首选机制。与容器层不同,卷存储在宿主机文件系统上,由 Docker 管理,独立于容器的生命周期。

Key Properties

  • 持久性: 数据在容器删除后依然保留
  • 独立性: 卷与容器文件系统隔离
  • 共享性: 多个容器可挂载同一卷
  • Host 管理: Docker CLI 可直接管理卷

Default Location

Linux 系统中Docker 卷默认存储在:

/var/lib/docker/volumes/

Docker卷备份策略

Method 1: rsync 直接同步 (不推荐数据库)

rsync -azR --delete \
    /var/lib/docker/volumes/ \
    /mnt/nas_backup/docker_backups/

⚠️ 警告: 直接同步二进制数据库文件可能导致恢复后无法启动。

Method 2: mysqldump + rsync (推荐用于数据库)

# 在容器中执行 mysqldump
docker exec <mysql_container> mysqldump -u root -p --all-databases > dump.sql

# rsync 同步导出文件
rsync -az /path/to/dump.sql /mnt/nas_backup/docker_backups/

Method 3: docker save / docker load

# 导出镜像
docker save -o images.tar image_name:tag

# rsync 传输
rsync -az images.tar user@nas:/backup/

# 导入镜像
docker load < images.tar
  • Navidrome — 音乐流媒体服务使用 Docker 卷存储音乐文件和数据库
  • 群晖 NAS — 网络存储作为 Docker 卷备份的目标位置
  • Portainer — Docker 可视化管理工具,通过 Web UI 查看/管理卷Portainer 重装前可通过 docker volume ls | grep portainer 查找 portainer_data 卷,删除前需确认是否需要保留数据

Best Practices

  1. 数据库一致性: 使用 mysqldump 而非直接复制
  2. 定期快照: 结合 LVM/ZFS 快照实现应用一致性
  3. 增量同步: rsync 仅传输变更的卷数据
  4. 备份验证: 定期测试从备份恢复的可行性

See Also

  • Disaster-Recovery — Docker 卷备份是灾备策略的核心
  • RTO — 恢复时间目标受备份策略影响
  • RPO — 恢复点目标由备份频率决定