温馨提示×

debian docker怎么备份

小樊
38
2026-09-23 09:00:22
栏目: 智能运维

在 Debian 上备份 Docker 通常分为几类:容器配置备份、镜像备份、数据卷备份、以及整个 Docker 目录备份。下面按常见场景给你说明。


一、备份 Docker 镜像

1. 导出单个镜像

docker save -o myimage.tar image_name:tag

恢复:

docker load -i myimage.tar

2. 批量导出所有镜像

docker images -q | xargs -I {} docker save -o {}.tar {}

二、备份容器(配置 + 文件系统)

1. 导出容器为镜像(推荐)

docker commit container_name mybackup:latest
docker save -o mybackup.tar mybackup:latest

恢复:

docker load -i mybackup.tar
docker run -d --name container_name mybackup:latest

2. 直接导出容器文件系统

docker export container_name > container.tar

恢复(只能作为镜像导入):

docker import container.tar myimage:latest

三、备份 Docker 数据卷(最重要)

方法 1:使用临时容器备份卷

假设卷名是 myvolume

docker run --rm \
  -v myvolume:/data \
  -v $(pwd):/backup \
  debian tar czf /backup/myvolume.tar.gz -C /data .

恢复:

docker run --rm \
  -v myvolume:/data \
  -v $(pwd):/backup \
  debian tar xzf /backup/myvolume.tar.gz -C /data

四、备份 Docker 整个目录(系统级备份)

Debian 默认 Docker 数据目录:

/var/lib/docker

停止 Docker 后备份(最安全)

systemctl stop docker
tar czf docker-backup.tar.gz /var/lib/docker
systemctl start docker

恢复:

systemctl stop docker
rm -rf /var/lib/docker
tar xzf docker-backup.tar.gz -C /
systemctl start docker

⚠️ 注意:

  • 不同 Docker 版本不保证兼容
  • 不建议跨服务器随意恢复

五、Docker Compose 项目备份(最常见)

一般只需要备份:

  • docker-compose.yml
  • .env
  • 数据卷或挂载目录

示例:

tar czf project-backup.tar.gz docker-compose.yml .env data/

六、自动化备份示例(cron)

0 3 * * * docker run --rm -v myvolume:/data -v /backup:/backup debian tar czf /backup/myvolume-$(date +%F).tar.gz -C /data .

推荐备份策略(实战)

✅ 镜像:不常备份
✅ 容器:用 compose + 卷
✅ 数据:卷必须备份
✅ 配置:compose 文件进 Git

如果你愿意,可以告诉我:

  • 是 单机还是服务器
  • 是否使用 Docker Compose
  • 是否有 数据库(MySQL / PostgreSQL)

我可以直接给你一套可复制的备份脚本。

0 踩