在CentOS系统上备份和恢复Docker容器可以通过以下几种方法实现:
使用 docker commit
命令:
docker stop <container_name_or_id>
docker commit <container_name_or_id> <backup_image_name>
docker save <backup_image_name> > <backup_image_name>.tar
使用 docker export
命令:
docker export <container_name_or_id> > <container_name_or_id>.tar
docker run -d --name <new_container_name> <image_name>
cat <container_name_or_id>.tar | docker import - <new_image_name>
使用 docker checkpoint
和 docker restore
(适用于Docker 1.13及以上版本):
echo 1 > /proc/sys/vm/nr_checkpoint_threads
docker checkpoint create <container_id_or_name> <checkpoint_name>
docker restore <checkpoint_name>
从备份文件恢复单个容器:
docker import
命令从tar归档文件创建一个新的镜像。cat <backup_file.tar> | docker import - <new_image_name>
docker run
命令从新创建的镜像启动一个容器。docker run -d --name <new_container_name> <new_image_name>
从备份文件恢复所有容器:
docker import
和 docker run
命令恢复每个容器。for file in *.tar; do
image_name=$(basename "$file" .tar)
new_image_name="${image_name}_restored"
cat "$file" | docker import - "$new_image_name"
docker run -d --name "${image_name}_restored" "$new_image_name"
done
恢复Docker镜像:
docker load
命令加载镜像。for file in *.tar; do
docker load < "$file"
done
恢复Docker卷:
docker volume create
和 docker cp
命令恢复卷。for file in *.json; do
volume_name=$(basename "$file" .json)
new_volume_name="${volume_name}_restored"
docker volume create "$new_volume_name"
docker cp "${volume_name}_backup.json":/var/lib/docker/volumes/"$volume_name"/_data "$new_volume_name"
done
通过以上方法,你可以在CentOS系统中有效地备份和恢复Docker容器。选择适合你需求的方法进行操作即可。