docker - Docker 无法在代理 TLS 握手超时后提取图像
问题描述
我在 CentOS 7 上安装了最新的 Docker 版本 18.06.0。我的服务器位于公司网络中,因此使用代理服务器访问注册表。我根据 docker 文档添加了代理设置。但最后添加代理设置部分工作。即现在 docker 正在使用代理在运行之前拉取图像。
但现在它无法给出以下错误:
$ sudo docker run hello-world
Unable to find image ‘hello-world:latest’ locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp: net/http: TLS handshake timeout.
此外,登录失败:
$ sudo docker login --username=XXXX
Password:
Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp: EOF
我的代理非常快。当我使用它使用 wget 或 curl 从互联网下载任何内容时,我看到 90 到 100Mbps 的速度。我机器上的其他应用程序实用程序(例如 yum)正在完美地使用此代理,并且运行良好。现在我不知道为什么只有 Docker 在下载图像时有问题。
安装和配置的详细信息如下:
版本:
$ sudo docker version
Client:
Version: 18.06.0-ce
API version: 1.38
Go version: go1.10.3
Git commit: 0ffa825
Built: Wed Jul 18 19:08:18 2018
OS/Arch: linux/amd64
Experimental: false
服务器:
Engine:
Version: 18.06.0-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: 0ffa825
Built: Wed Jul 18 19:10:42 2018
OS/Arch: linux/amd64
Experimental: false
操作系统版本:
Description: CentOS Linux release 7.2.1511 (Core)
Release: 7.2.1511
Docker 代理配置:
$ cat /etc/systemd/system/docker.service.d/https-proxy.conf
[Service]
Environment=“HTTP_PROXY=http://pqr.corp.xxx.com:8080”
Environment=“HTTPS_PROXY=https://pqr.corp.xxx.com:8080”
Environment=“NO_PROXY=localhost,127.0.0.1”
添加此配置后,我已经完成了
sudo systemctl daemon-reload
sudo systemctl restart docker
寻求具体帮助。
我浏览了大多数关于 TLS 握手超时问题的帖子,但没有得到任何适合我的答案或建议。我的代理很好,docker 正在使用它。我不明白为什么它会得到那个讨厌的超时。
解决方案
配置文件是:
[Service]
Environment=“HTTP_PROXY=http://pqr.corp.xxx.com:8080”
Environment=“HTTPS_PROXY=https://pqr.corp.xxx.com:8080”
Environment=“NO_PROXY=localhost,127.0.0.1”
请注意,第 3 行:HTTPS_PROXY= https
代理服务器是否支持 HTTPS?或者应该有错误。
也许HTTPS_PROXY=http
是正确的。
顺便说一句,类似的错误是Get https://registry-1.docker.io/v2/: proxyconnect tcp: EOF
推荐阅读
- javascript - Angular 10 升级 - 修复 CommonJS 或 AMD 依赖项可能导致优化救助
- javascript - 内联编辑器中的对话流捕获实体
- php - SQLSTATE [23000]:违反完整性限制:1062 'mail@mail.com' 'users_email_unique' 键的重复条目
- php - Alpha vantage API 不适用于 NSE,而同一查询为外国股票提供输出
- java - RefreshAheadCache 不调用 @cacheable 注释方法
- python - 如何为 Tacker 分解实现 mode-k 乘积 Python?
- smtp - SMTP 错误:DATA END 命令失败:550 5.7.1 客户端无权作为此发件人发送
- c# - 多个 RDLC 到单独页面上的单个 word 文档
- python - 在嵌套的 for 循环中过滤子数据框
- excel - 使用列中的值作为 json 请求的参数并组合表