Docker 卷 备份 + 恢复 完整教程(超简单、一步到位)

2 阅读3分钟

专门给 Ubuntu 虚拟机 用,安全、不丢数据、不用懂复杂原理,照着复制命令就行。


清理 Docker 无用网络 超简单教程(Ubuntu 虚拟机专用)

如何清理Docker卷?清理 Docker 卷(Volume)

一、核心原理(一句话)

Docker 卷 = 容器里的数据文件夹 备份 = 把卷打包成 .tar 压缩包 恢复 = 把压缩包解压回 Docker 卷

全程只需要 2 条命令


二、先查看你有哪些卷

docker volume ls

记住你要备份的卷名,例如: my_data mysql_data portainer_data


三、备份 Docker 卷(导出为压缩包)

通用命令(直接用)

docker run --rm -v 卷名:/source -v $(pwd):/backup ubuntu tar cvf /backup/备份名.tar -C /source .

示例(把 my_data 卷备份到当前目录)

docker run --rm -v my_data:/source -v $(pwd):/backup ubuntu tar cvf /backup/my_data_backup.tar -C /source .

执行完,你当前文件夹会出现: my_data_backup.tar 这就是完整备份文件


四、恢复 Docker 卷(从压缩包恢复)

第一步:创建一个空卷(必须)

docker volume create 新卷名

示例:

docker volume create my_data_new

第二步:恢复数据(通用命令)

docker run --rm -v 新卷名:/target -v $(pwd):/backup ubuntu tar xvf /backup/备份名.tar -C /target

示例(恢复刚才的备份)

docker run --rm -v my_data_new:/target -v $(pwd):/backup ubuntu tar xvf /backup/my_data_backup.tar -C /target

恢复完成!


五、用恢复后的卷启动容器

docker run -d -p 8080:80 -v 新卷名:/容器内路径 镜像名

示例(MySQL):

docker run -d -p 3306:3306 -v my_data_new:/var/lib/mysql mysql

六、最常用场景:MySQL 卷备份(直接复制)

备份

docker run --rm -v mysql_data:/source -v $(pwd):/backup ubuntu tar cvf /backup/mysql_backup.tar -C /source .

恢复

docker volume create mysql_data_new
docker run --rm -v mysql_data_new:/target -v $(pwd):/backup ubuntu tar xvf /backup/mysql_backup.tar -C /target

七、超简单总结(背这 4 条就够)

  1. 看卷:docker volume ls
  2. 备份:docker run --rm -v 卷名:/source -v $(pwd):/backup ubuntu tar cvf /backup/备份.tar -C /source .
  3. 新建空卷:docker volume create 新卷名
  4. 恢复:docker run --rm -v 新卷名:/target -v $(pwd):/backup ubuntu tar xvf /backup/备份.tar -C /target

如果你愿意,我可以直接帮你生成你当前所有 Docker 卷的备份命令,你只要复制粘贴就能一键备份全部数据!# Docker 卷 备份 + 恢复 完整教程(超简单、一步到位) 专门给 Ubuntu 虚拟机 用,安全、不丢数据、不用懂复杂原理,照着复制命令就行。


一、核心原理(一句话)

Docker 卷 = 容器里的数据文件夹 备份 = 把卷打包成 .tar 压缩包 恢复 = 把压缩包解压回 Docker 卷

全程只需要 2 条命令


二、先查看你有哪些卷

docker volume ls

记住你要备份的卷名,例如: my_data mysql_data portainer_data


三、备份 Docker 卷(导出为压缩包)

通用命令(直接用)

docker run --rm -v 卷名:/source -v $(pwd):/backup ubuntu tar cvf /backup/备份名.tar -C /source .

示例(把 my_data 卷备份到当前目录)

docker run --rm -v my_data:/source -v $(pwd):/backup ubuntu tar cvf /backup/my_data_backup.tar -C /source .

执行完,你当前文件夹会出现: my_data_backup.tar 这就是完整备份文件


四、恢复 Docker 卷(从压缩包恢复)

第一步:创建一个空卷(必须)

docker volume create 新卷名

示例:

docker volume create my_data_new

第二步:恢复数据(通用命令)

docker run --rm -v 新卷名:/target -v $(pwd):/backup ubuntu tar xvf /backup/备份名.tar -C /target

示例(恢复刚才的备份)

docker run --rm -v my_data_new:/target -v $(pwd):/backup ubuntu tar xvf /backup/my_data_backup.tar -C /target

恢复完成!


五、用恢复后的卷启动容器

docker run -d -p 8080:80 -v 新卷名:/容器内路径 镜像名

示例(MySQL):

docker run -d -p 3306:3306 -v my_data_new:/var/lib/mysql mysql

六、最常用场景:MySQL 卷备份(直接复制)

备份

docker run --rm -v mysql_data:/source -v $(pwd):/backup ubuntu tar cvf /backup/mysql_backup.tar -C /source .

恢复

docker volume create mysql_data_new
docker run --rm -v mysql_data_new:/target -v $(pwd):/backup ubuntu tar xvf /backup/mysql_backup.tar -C /target

七、超简单总结(背这 4 条就够)

  1. 看卷:docker volume ls
  2. 备份:docker run --rm -v 卷名:/source -v $(pwd):/backup ubuntu tar cvf /backup/备份.tar -C /source .
  3. 新建空卷:docker volume create 新卷名
  4. 恢复:docker run --rm -v 新卷名:/target -v $(pwd):/backup ubuntu tar xvf /backup/备份.tar -C /target