通过PowerShell备份Docker卷后找不到生成的.tar文件如何解决
问题原因
你的操作存在路径配置错误,问题出在tar命令的输出路径参数:
你当前执行的tar cvf backup.tar /var/lib/mysql是把备份包生成在临时Ubuntu容器的当前工作目录(Ubuntu镜像默认工作目录为根目录/),你虽然挂载了本地目录到容器的/backup路径,但没有将tar的输出文件指向该挂载目录。同时你添加了--rm参数,容器运行结束后会直接销毁,存在容器内部的备份包也会同步被删除,所以你在本地找不到对应文件。
修正方案
根据你的执行环境选择对应修正后的命令即可:
- 如果你在Windows原生终端(PowerShell/CMD)中执行Docker命令,修正后的命令为:
执行完成后可以直接在C盘根目录找到docker run --rm --volumes-from wordpress_db_1 -v c:\:/backup ubuntu tar cvf /backup/backup.tar /var/lib/mysqlbackup.tar备份文件。 - 如果你在WSL子系统终端中执行Docker命令,修正后的命令为:
执行完成后备份文件会出现在你的Windows桌面。docker run --rm --volumes-from wordpress_db_1 -v /mnt/c/users/me/desktop:/backup ubuntu tar cvf /backup/backup.tar /var/lib/mysql
注意事项
- 如果执行命令后仍然找不到文件,先确认当前执行Docker的终端拥有目标本地目录的读写权限,WSL环境下还要额外检查Windows目录的挂载权限配置。
- 后续恢复备份时,只需要将tar命令的
c参数替换为x,调整对应路径即可完成恢复。
内容的提问来源于stack exchange,提问作者a6man
相关产品推荐
相关产品推荐

