docker开启"containerd-snapshotter": true之后,强制重启电脑后文件损坏?如何解决?
Enable containerd image store on Docker Engine
/etc/docker/daemon.json
{
"features": {
"containerd-snapshotter": true
}
}
sudo systemctl restart docker
Create two directories required by rclone docker plugin:
sudo mkdir -p /var/lib/docker-plugins/rclone/config
sudo mkdir -p /var/lib/docker-plugins/rclone/cache
Install the managed rclone docker plugin for your architecture (here amd64):
docker plugin install rclone/docker-volume-rclone:amd64 --grant-all-permissions
docker plugin ls
此时rclone/docker-volume-rclone:amd64的plugin已经安装好了,
现在强制关闭电脑的电源,进行强制重启,
发现rclone/docker-volume-rclone:amd64的plugin已经无法正常运行.
docker plugin enable rclone/docker-volume-rclone:amd64
amd64: Pulling from rclone/docker-volume-rclone
Digest: sha256:fe9389a00552f69b9fe6a2ad8149a5ad2ccd36ccef1f07c2628567b702551e47
830e914b5342: Complete
Error response from daemon: dial unix /run/docker/plugins/39f9c0d0077243e2700b8e426ee9028e08d6a2b5c438b5f98b14699c60389b72/rclone.sock: connect: no such file or directory
docker plugin disable rclone/docker-volume-rclone:amd64
docker plugin rm rclone/docker-volume-rclone:amd64
docker plugin install rclone/docker-volume-rclone:amd64 --grant-all-permissions
amd64: Pulling from rclone/docker-volume-rclone
Digest: sha256:fe9389a00552f69b9fe6a2ad8149a5ad2ccd36ccef1f07c2628567b702551e47
830e914b5342: Downloading [> ] 0B/25.77MB
failed commit on ref "docker-plugin-sha256:aa6b07aa3cd41addf0952c1d8b9c27eeabee361e4ccd93ab650b72ed0a4d96fe": unexpected commit size 35186, expected 1566: failed precondition
此时文件已经损坏,如何解决?
为什么docker删除plugin的时候没有把旧的镜像文件一起删掉呢?重新安装不上?
除了完全删除docker和containerd之外,还有其他方法修复吗?
终于找到解决方案:
cache=/host/dir设置缓存目录的备用主机位置 。 该插件将在此处保留 VFS 缓存。此外,它还将创建和维护 docker-plugin.state 此目录中的文件。当插件为 restarted 或 reinstalled,它将在此文件中查找以重新创建任何卷 以前就存在。但是,它们不会被重新安装到 重启后使用容器。通常这不是问题,因为 Docker 守护程序通常会在以下情况下重新启动受影响的用户容器 失败、守护程序重启或主机重启。
如果插件无法正常工作,并且只有在您尝试使用上述方法进行诊断后作为最后的手段,您可以尝试清除插件的状态。 请注意,所有现有的 rclone docker 卷可能必须重新创建。 这可能是必要的,因为重新安装不会清理现有状态文件以允许轻松恢复,如上所述。
docker plugin disable rclone # disable the plugin to ensure no interference
sudo rm /var/lib/docker-plugins/rclone/cache/docker-plugin.state # removing the plugin state
docker plugin enable rclone # re-enable the plugin afterward
终于解决这个的问题了,是镜像源有问题,换一个标签和镜像源就好了
failed commit on ref "docker-plugin-sha256:aa6b07aa3cd41addf0952c1d8b9c27eeabee361e4ccd93ab650b72ed0a4d96fe": unexpected commit size 35186, expected 1566: failed precondition
docker plugin install docker.xuanyuan.me/rclone/docker-volume-rclone:amd64-1.69.2 --grant-all-permissions --disable-content-trust