教程 docker tutorial

备份、迁移与权限管理

容器数据的持久化与安全管理是 Docker 运维的重要部分。本节介绍数据备份、迁移和权限管理的最佳实践。

1. 数据备份

1.1 备份卷数据

bash
# 创建容器将卷内容导出为 tar 文件
docker run --rm -v myvolume:/data -v $(pwd):/backup busybox \
  tar czf /backup/myvolume-backup.tar.gz -C /data .

`

1.2 备份绑定挂载数据

bash
# 直接使用宿主机命令
tar czf backup-config.tar.gz /host/path

2. 数据迁移

2.1 迁移卷到另一主机

  1. 备份卷:
bash
docker run --rm -v myvolume:/data -v $(pwd):/backup busybox \
  tar czf /backup/myvolume-backup.tar.gz -C /data .
  1. 将 tar 文件传输到目标主机
  2. 恢复卷:
bash
docker volume create myvolume
docker run --rm -v myvolume:/data -v $(pwd):/backup busybox \
  tar xzf /backup/myvolume-backup.tar.gz -C /data

2.2 迁移绑定挂载

  • 直接复制宿主机目录即可:
bash
scp -r /host/path user@remote:/host/path

3. 权限管理

  • 容器访问宿主机文件时需确保用户权限:
bash
docker run -v /host/path:/container/path -u $(id -u):$(id -g) myapp
  • 修改宿主机目录权限:
bash
chown -R 1000:1000 /host/path
chmod -R 755 /host/path
  • 使用只读挂载防止容器修改宿主机数据:
bash
docker run -v /host/path:/container/path:ro myapp

4. 最佳实践

  • 定期备份重要数据
  • 使用命名卷管理数据,便于迁移和备份
  • 避免在生产环境随意绑定宿主机目录
  • 使用权限和只读挂载提升安全性
  • 对于敏感数据,可使用加密或专用存储卷

通过掌握数据备份、迁移与权限管理技巧,可以有效保障容器数据安全与可用性,提升生产环境运维效率。