我手动删除了一个docker管理的子卷
btrfs subvolume delete /var/lib/docker/btrfs/subvolumes/<subvolume id>
但是当我试图重新创建它时,它给了我这个错误,如果不对docker安装进行核化,我就无法解决这个错误
Error response from daemon: stat /var/lib/docker/btrfs/subvolumes/<subvolume id>: no such file or directory
已经尝试stop
/rm -f
容器,docker system prune -f
和systemctl restart docker.service
对无效
我自己删除btrfs子卷后也出现了错误(docker system prune
没有释放子卷的错误仍然存在(。
要恢复,您还必须删除/var/lib/docker
:
systemctl stop docker
rm -rf /var/lib/docker
systemctl start docker
好吧,我在fedora上遇到了同样的问题,默认情况下使用btrfs。删除/var/lib/doker目录将删除所有docker数据,包括图像、容器、卷和其他配置文件。
这样做基本上将Docker重置为干净状态,就好像你刚刚第一次安装Docker一样。
但是,删除/var/lib/doker目录将导致数据丢失。
所有与Docker相关的数据,如运行的容器、映像和卷,都将永久丢失。如果您在Docker容器或卷中存储了重要数据,则删除此目录后,该数据将消失。
删除映像,并且只有路径/var/lib/doker/btrfs中的btrfs目录才能解决问题,无需docker系统修剪或删除hole-docker目录
docker rm -f $(docker ps -aq)
docker rmi $(docker images -aq)
sudo systemctl stop docker
sudo rm -rf /var/lib/docker/btrfs
sudo systemctl start docker
这是一个更快、更安全的解决方案
注意,删除btrfs目录可能需要一段时间,因为它可能有太多的文件