使用debugfs命令测试
步骤
#如果删除宿主机的mysql目录文件,第一时间把mysql容器停止掉,防止容器重新启动,创建目录覆盖文件id,文件id被覆盖,这种方式就恢复不了
docker rm -f mysql
#查看文件所在的磁盘位置
df -Th
#使用debugfs
#打开df -Th命令所显示的磁盘空间
open /dev/mapper/ubuntu--vg-ubuntu--lv
#查看被删目录的上级目录
ls -d /docker/
#可以看到刚才删除的目录id,记录好id后,按q退出
#使用rdump命令恢复文件,回复完成按q退出
rdump <12196895> /home/test/
#进入目录查看,可以发现文件都在
#使用mv命令给文件改名,移动到宿主机挂载位置,启动容器,即可恢复
补充
查看文件id命令 ls -i
使用cp、mv命令会改变文件id;使用rm命令不会改变文件id;使用mkdir命令也不会改变文件id,如果使用rm删除文件,在使用mkdir创建同名目录(docker restart创建的目录同理),就没法恢复了。