gpt4 book ai didi

Docker 推送-net/http : TLS handshake timeout

转载 作者:行者123 更新时间:2023-12-04 19:34:52 35 4
gpt4 key购买 nike

我在 AWS EC2 Ubuntu 14.04 实例上部署了一个私有(private) docker 镜像注册表。使用 Let's Encrypt 保护注册表证书。

不幸的是,我收到了 net/http: TLS handshake timeout对于 docker push耗时超过 300 秒的操作:

这是 time'd 的输出命令:

[luqo33@home-pc containers]$ time docker push <my-registry-domain:5000>/nginx                                                    
The push refers to a repository [<my-registry-domain:5000>/nginx]
dda5a806f0b0: Layer already exists
ec35cfccb7f7: Layer already exists
94c1a232bb3f: Layer already exists
6d6b9812c8ae: Layer already exists
695da0025de6: Retrying in 1 second
fe4c16cbf7a4: Pushing [================================================> ] 119 MB/123 MB
net/http: TLS handshake timeout

real 5m0.847s
user 0m0.097s
sys 0m0.017s
regsitry:2 的日志容器不显示任何错误 - 除了在接收数据时出现意外 EOF 的通知。我还可以推送不到 5 分钟即可推送的图像而不会出现问题。

我怀疑这是系统设置的原因,因为超时总是在操作超过 300 秒时发生。没有任何负载均衡器或其他代理。 <my-registry-domain:5000>直接指向服务器IP。

我该如何进一步调查并可能补救这种情况?

编辑

当我将图像推送到其他服务器提供商 (DigitalOcean)、AWS ECS 注册表甚至 Docker Hub 时,也会发生同样的情况!我很难相信 Docker 客户端会有 300 秒的内置握手超时。

我在想也许我应该开始在网络级别寻找解决方案 - 使用我的硬件(wi-fi 路由器)或我的 ISP。

有人知道这里发生了什么吗?

最佳答案

我遇到了同样的问题,这个问题可能来自您的互联网连接,我通过 解决了将并发上传(get 下载)递减到 1 在 docker 。
通过使用这些参数:

--max-concurrent-downloads  (default: 3)    Set the max concurrent downloads for each pull

--max-concurrent-uploads (default: 5) Set the max concurrent uploads for each push

如果您的带宽较低,同时上传 5 张图像可能会导致超时。

https://docs.docker.com/engine/reference/commandline/dockerd/

关于Docker 推送-net/http : TLS handshake timeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41070528/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com