ubuntu

ubuntu中docker如何备份数据

小樊
49
2025-09-08 18:15:23
栏目: 智能运维

以下是在Ubuntu中备份Docker数据的常用方法:

一、备份Docker数据目录(核心方式)

  1. 停止Docker服务
    sudo systemctl stop docker
    
  2. 备份数据目录
    • 备份 /var/lib/docker(容器、镜像、卷等核心数据):
      sudo tar -czvf docker-data-backup.tar.gz /var/lib/docker
      
    • 备份 /etc/docker(配置文件):
      sudo tar -czvf docker-config-backup.tar.gz /etc/docker
      

二、备份Docker卷数据

  1. 列出所有卷
    docker volume ls
    
  2. 备份单个卷
    sudo tar -czvf volume-name-backup.tar.gz /var/lib/docker/volumes/volume-name/_data
    
    或使用 docker cp 命令复制卷数据到宿主机:
    docker cp volume-name:/path/in/volume /host/backup/path
    

三、备份容器镜像

  1. 保存镜像为tar文件
    docker save -o backup-image.tar $(docker images -q)
    
    或备份单个容器为镜像:
    docker commit container-name backup-image
    docker save -o backup-image.tar backup-image
    

四、备份Docker网络配置

docker network ls | awk '/^([0-9a-f]{12})$/ {print $1}' | xargs -I {} docker network inspect {} > network-backup.json

五、自动化备份脚本(示例)

#!/bin/bash
BACKUP_DIR="/path/to/backup"
mkdir -p "$BACKUP_DIR"
sudo systemctl stop docker
sudo tar -czvf "$BACKUP_DIR/docker-data-$(date +%Y%m%d).tar.gz" /var/lib/docker
sudo tar -czvf "$BACKUP_DIR/docker-config-$(date +%Y%m%d).tar.gz" /etc/docker
for volume in $(docker volume ls -q); do
    sudo tar -czvf "$BACKUP_DIR/${volume}-$(date +%Y%m%d).tar.gz" /var/lib/docker/volumes/$volume/_data
done
sudo cp -r /etc/docker/network "$BACKUP_DIR/"
echo "Backup completed!"

注意事项

0
看了该问题的人还看了