前天在使用 Docker 进行容器化部署时,遇到 TLS 握手超时的错误。在这里我将分享如何解决此问题。
错误信息
错误信息:Error response from daemon: Get https://registry-1.docker.io/v2/library/image-name/manifests/tag: net/http: TLS handshake timeout
这个错误通常在从 Docker 镜像仓库拉取镜像的过程中出现,意味着 Docker 守护进程无法建立与 TLS 连接相关的握手阶段。
解决方案
-
检查网络连接
首先,确保网络连接正常并且可以访问 Docker 镜像仓库(
registry-1.docker.io
)。尝试通过浏览器访问该地址,以确认网络连接正常。 -
检查代理配置
如果计算机使用了代理服务器,请确保 Docker 守护进程可以正确地配置和使用代理。按照以下步骤进行检查和设置:
-
编辑 Docker 配置文件
daemon.json
,通常位于/etc/docker/
目录下。 -
在文件中添加以下代理配置参数:
{ "proxies": { "default": { "httpProxy": "http://your-proxy-server:proxy-port", "httpsProxy": "http://your-proxy-server:proxy-port" } } }
-
替换
your-proxy-server
和proxy-port
分别为代理服务器地址和端口。 -
保存并关闭文件,然后重启 Docker 守护进程。
-
-
调整 TLS 超时设置
如果网络环境较差,或者 Docker 镜像仓库的响应时间较长,可以尝试调整 Docker 守护进程的 TLS 超时设置。按照以下步骤进行操作:
-
编辑 Docker 配置文件
daemon.json
,通常位于/etc/docker/
目录下。 -
在文件中添加以下参数:
{ "max-concurrent-downloads": 10, "max-concurrent-uploads": 10, "default-address-pool": [{"base": "10.0.0.0/8", "size": 24}], "live-restore": true, "max-download-attempts": 10, "max-event-backlog": 100, "max-retry-attempts": 10, "registry-mirrors": ["https://your-registry-mirror"] }
-
替换
your-registry-mirror
为使用的镜像仓库地址。 -
保存并关闭文件,然后重启 Docker 守护进程。
-
-
更新 Docker 版本
如果使用的是较早版本的 Docker,尝试升级到最新版本,因为 Docker 更新版本通常包含了对 TLS 连接问题的解决方案。
-
检查防火墙设置
某些防火墙规则可能会阻止 Docker 和镜像仓库之间的TLS通信。可以尝试禁用防火墙或者添加适当的规则来允许 TLS 连接。文章来源:https://www.toymoban.com/news/detail-718751.html
总结
通过上述步骤,解决 Docker TLS 握手超时错误。确保逐一检查、配置和测试,以达到最佳效果。希望我的分享对您解决此问题提供帮助。文章来源地址https://www.toymoban.com/news/detail-718751.html
到了这里,关于docker报Error response from daemon: Get https://registry-1.docker.io/v2/library/image-name/manifests/的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!