Docker容器的备份可通过保存镜像或导出文件系统两种方式实现,具体步骤如下:
docker ps
docker commit <容器ID或名称> <备份镜像名>:<标签>
例如:docker commit my_nginx my_nginx_backup:latestdocker save -o <备份文件名>.tar <备份镜像名>:<标签>
例如:docker save -o my_nginx_backup.tar my_nginx_backup:latestdocker export <容器ID或名称> > <备份文件名>.tar
例如:docker export my_nginx > my_nginx_export.tar若容器使用了**数据卷(Volume)**存储数据(如数据库、日志),需单独备份卷数据:
docker volume ls
/backup)。docker run --rm -v <卷名>:/volume -v /backup:/backup ubuntu tar czvf /backup/<卷名>.tar.gz -C /volume .
例如:docker run --rm -v my_volume:/volume -v /backup:/backup ubuntu tar czvf /backup/my_volume.tar.gz -C /volume .恢复容器需根据备份方式选择对应步骤,优先恢复镜像或卷数据,再启动容器。
docker load -i <备份文件名>.tar
例如:docker load -i my_nginx_backup.tardocker run -d --name <新容器名> -v <原卷名>:<容器内目录> <备份镜像名>:<标签>
例如:docker run -d --name restored_nginx -v my_volume:/usr/share/nginx/html my_nginx_backup:latestcat <备份文件名>.tar | docker import - <新镜像名>:<标签>
例如:cat my_nginx_export.tar | docker import - my_nginx_restored:latestdocker run -d --name <新容器名> <新镜像名>:<标签>
例如:docker run -d --name restored_nginx my_nginx_restored:latest/var/lib/docker/volumes/<卷名>/_data)。docker run --rm -v <备份卷名>:/backup -v <原卷名>:/volume ubuntu tar xzvf /backup/<卷名>.tar.gz -C /volume
例如:docker run --rm -v my_volume_backup:/backup -v my_volume:/volume ubuntu tar xzvf /backup/my_volume.tar.gz -C /volumechmod 600)防止未授权访问。docker image prune清理无用镜像,减少备份文件大小。通过以上步骤,可在Debian系统上高效实现Docker容器的备份与恢复,保障数据安全和服务连续性。