以下是在Ubuntu中備份Docker數據的常用方法:
sudo systemctl stop docker
/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 volume ls
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
docker save -o backup-image.tar $(docker images -q)
或備份單個容器為鏡像:docker commit container-name backup-image
docker save -o backup-image.tar backup-image
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!"
sudo
執行。