在Windows上Docker CE/EE客户端的奇怪行为 – 某些镜像层的超时问题

198次阅读
没有评论

问题描述

在使用私有注册表时遇到了一个问题:无法拉取镜像,因为某些镜像层下载失败。奇怪的是,这似乎发生在较大(50MB大小)的镜像层上。问题不应该是注册表或网络问题,因为其他使用不同系统的同事可以成功获取这些镜像。

用户提供了一个类似如下的错误输出:

6bbedd9b76a4: Pulling fs layer
fc19d60a83f1: Download complete
e413bb911fd: Download complete
...
f85147a0e9d7: Waiting

他还提到了另一些新尝试时出现的错误,如:

2c1171c58a199d2ec9daee729d88146dfb91caba4788: local error: tls: bad record MAC
error pulling image configuration: tls: received record with version 5ea7 when expecting version 303

用户还更新了一些关于首个镜像层的问题,该问题总是在“downloading… 987B”之前被卡住。

解决方案

请注意以下操作可能因版本差异或其他因素而有所不同。

方案1:检查和调整防病毒软件

有时候,防病毒软件可能会干扰SSL连接,导致类似的错误。你可以尝试临时禁用或卸载防病毒软件,看看是否解决了问题。然而,这并不推荐作为长期解决方案,因为安全性可能会受到影响。

方案2:解决Docker Bug

这个问题被报告为一个Docker的Bug,该Bug在使用VPN时会因为巨幅以太网帧(jumbo Ethernet frames)而导致。Docker团队已经修复了这个问题。你可以参考他们的GitHub问题链接获取更多信息。
https://github.com/moby/moby/issues/34080

如果你仍然遇到问题,建议查看你所使用的Docker版本,以及有关GitHub链接中的讨论,看看是否有其他用户提供了类似的解决方案或工作流程。

总结

在Windows上使用Docker时,遇到一些奇怪的行为是正常的。问题可能涉及网络、防病毒软件或甚至是Docker本身的Bug。根据具体情况,选择合适的解决方案,可能需要一些尝试和测试。如果问题确实是由Docker的Bug引起的,那么耐心等待Docker团队发布修复程序是一个好的选择。

正文完