我在更改Google Compute Platform VM实例的机器类型时似乎遇到了Docker问题。很好的图像无法运行,无法删除和无法提取,所有这些都包含有关缺失密钥的各种模糊消息(在Linux上),重复或缺少图层,以及其他我不记得的。
错误并不总是发生。刚刚发生的一个,昨天在相同的设置上运行了几百次的图像,但是在重启之前是:
$ docker run --rm -it mbloore/model:conda4.3.1-aq0.1.9
docker: Error response from daemon: layer does not exist.
$ docker pull mbloore/model:conda4.3.1-aq0.1.9
conda4.3.1-aq0.1.9: Pulling from mbloore/model
Digest: sha256:4d203b18fd57f9d867086cc0c97476750b42a86f32d8a9f55976afa59e699b28
Status: Image is up to date for mbloore/model:conda4.3.1-aq0.1.9
$ docker rmi mbloore/model:conda4.3.1-aq0.1.9
Error response from daemon: unrecognized image ID sha256:8315bb7add4fea22d760097bc377dbc6d9f5572bd71e98911e8080924724554e
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
$
所以它认为它没有图像,但是Docker文件夹中充满了文件,并且它确实知道了一些哈希值。看起来某些索引已经损坏。 我重新启动了那个实例,然后Docker似乎再次正常,我没有采取任何特殊行动。
到目前为止,我发现的唯一解决方法是重新启动并希望,或者删除几个大型Docker目录,并将它们重新创建为空。然后重新启动后拉动并再次运行。但我现在不确定它是否会永远存在。
我在Debian 9上运行Docker版本17.05.0-ce。我的图像是在Amazon Linux上使用Docker版本17.03.2-ce构建的,并且基于官方的Ubuntu映像。
有没有人遇到过这种问题,或者知道如何在不删除几乎所有内容的情况下重置Docker的状态?
答案 0 :(得分:0)
两点:
1)似乎改变VM与它无关。在一些靴子上,Docker工作,而其他工作没有,没有改变配置或内容。
2)根据谷歌的建议,我安装了Stackdriver监控和日志记录代理,到目前为止,我还没有遇到过七次重启的问题。
我的第一个猜测是启动时存在竞争条件,添加这些代理会改变它对我有利。当然,我想要有一个真正的解决方案,但是现在我没有时间去解决这个问题。