错误: 读取链接 /var/lib/docker/overlay2: 无效参数。

32

今天早上我在执行 docker-compose up 时遇到了以下报错:

docker-compose up

错误:readlink /var/lib/docker/overlay2:无效的参数

4个回答

75

我认为更简单的方式是清除所有缓存和容器,然后重新拉取它们。

docker system prune --all
docker volume prune 
docker-compose up

我认为这将解决错误。


2
最好找到损坏的图像并重新创建它,而不是删除卷,因为它们保存着数据。 - Arijoon
如果您的数据(无法恢复),则可以尝试查找损坏的图像和容器,并将其删除。 - Tony Aziz
可以,有什么想法为什么会这样? - jonathanlima

35

问题在于一个或多个图像被损坏了。

我不得不逐个启动我的镜像:

docker-compose up <服务1> <服务2>...

直到我找到有问题的那一个,它是 backoffice 镜像。

然后我使用以下命令重新构建该镜像:

docker-compose build --no-cache <有问题的服务>

最终一切都恢复正常了。


2

要进行故障排除,请使用详细标志--verbose运行。

 docker-compose.exe --verbose -f ./compose.yml up

在我的情况下,我必须删除一些具体的损坏图片,这些图片只有在使用详细标志运行时才会被指示。

2
因为我在运行Docker镜像期间重新启动了Docker,导致镜像损坏。我重启了系统,然后运行了下面的命令。 --no-cache 是关键:
docker-compose build --no-cache
docker-compose up

您还可以找到已损坏的图像,并使用以下命令进行修复:
docker build -t karthik3030/apigateway -f  "apigateway/Dockerfile" . --no-cache

参考支持此解决方案的Docker Github页面:

https://github.com/docker/for-mac/issues/1396#issuecomment-310337418


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接