Docker注册表:由于dns_unresolved_hostname,无法推送镜像。

问题描述 投票:0回答:1

我无法将图像推送到我的本地注册表中。

$ docker image push registry.local:5000/covid-backend:60988b0-dirty
The push refers to repository [registry.local:5000/covid-backend]
eff147c1024b: Preparing 
790a9d8e41bb: Preparing 
20dd87a4c2ab: Preparing 
78075328e0da: Preparing 
9f8566ee5135: Preparing 
error parsing HTTP 404 response body: invalid character '<' looking for beginning of value: "<HTML><HEAD>\r\n<TITLE>Network Error</TITLE>\r\n</HEAD>\r\n<BODY>\r\n<FONT face=\"Helvetica\">\r\n<big><strong></strong></big><BR>\r\n</FONT>\r\n<blockquote>\r\n<TABLE border=0 cellPadding=1 width=\"80% \">\r\n<TR><TD>\r\n<FONT face=\"Helvetica\">\r\n<big>Network Error (dns_unresolved_hostname)</big>\r\n<BR>\r\n<BR>\r\n</FONT>\r\n</TD></TR>\r\n<TR><TD>\r\n<FONT face=\"Helvetica\">\r\nYour requested host \"registry.local\" could not be resolved by DNS.\r\n</FONT>\r\n</TD></TR>\r\n<TR><TD>\r\n<FONT face=\"Helvetica\">\r\n\r\n</FONT>\r\n</TD></TR>\r\n<TR><TD>\r\n<FONT face=\"Helvetica\" SIZE=2>\r\n<BR>\r\nFor assistance, contact your network support team.\r\n</FONT>\r\n</TD></TR>\r\n</TABLE>\r\n</blockquote>\r\n</FONT>\r\n</BODY></HTML>\r\n"

HTML内容响应包含。

网络错误 (dns_unresolved_hostname) 您请求的主机/"registry.local/"无法被DNS解析。

我已经尝试使用 curl:

$ curl -s registry.local:5000/v2/_catalog
{"repositories":["covid-backend","skaffold-covid-backend"]}

我的 /etc/hosts:

127.0.0.1   localhost registry.local

我也试着把它加进我的《世界日报》 ~/.docker/config.json 作为不安全的注册表。

"insecure-registries" : [
    "registry.local:5000"
]

我也看了一下docker日志。

abr 27 09:30:25 psgd dockerd[15476]: time="2020-04-27T09:30:25.967945384+02:00" level=info msg="Attempting next endpoint for push after error: Get https://registry.local:5000/v2/: Service Unavailable"
abr 27 09:30:29 psgd dockerd[15476]: time="2020-04-27T09:30:29.121878880+02:00" level=error msg="Upload failed: error parsing HTTP 404 response body: invalid character '<' looking for beginning of value: \"<HTML><HEAD>\\r\\n<TITLE>Network Error</TITLE>\\r\\n</HEAD>\\r\\n<BODY>\\r\\n<FONT face=\\\"Helvetica\\\">\\r\\n<big><strong></strong></big><BR>\\r\\n</FONT>\\r\\n<blockquote>\\r\\n<TABLE border=0 cellPadding=1 width=\\\"80% \\\">\\r\\n<TR><TD>\\r\\n<FONT face=\\\"Helvetica\\\">\\r\\n<big>Network Error (dns_unresolved_hostname)</big>\\r\\n<BR>\\r\\n<BR>\\r\\n</FONT>\\r\\n</TD></TR>\\r\\n<TR><TD>\\r\\n<FONT face=\\\"Helvetica\\\">\\r\\nYour requested host \\\"registry.local\\\" could not be resolved by DNS.\\r\\n</FONT>\\r\\n</TD></TR>\\r\\n<TR><TD>\\r\\n<FONT face=\\\"Helvetica\\\">\\r\\n\\r\\n</FONT>\\r\\n</TD></TR>\\r\\n<TR><TD>\\r\\n<FONT face=\\\"Helvetica\\\" SIZE=2>\\r\\n<BR>\\r\\nFor assistance, contact your network support team.\\r\\n</FONT>\\r\\n</TD></TR>\\r\\n</TABLE>\\r\\n</blockquote>\\r\\n</FONT>\\r\\n</BODY></HTML>\\r\\n\""
abr 27 09:30:29 psgd dockerd[15476]: time="2020-04-27T09:30:29.122824956+02:00" level=info msg="Attempting next endpoint for push after error: error parsing HTTP 404 response body: invalid character '<' looking for beginning of value: \"<HTML><HEAD>\\r\\n<TITLE>Network Error</TITLE>\\r\\n</HEAD>\\r\\n<BODY>\\r\\n<FONT face=\\\"Helvetica\\\">\\r\\n<big><strong></strong></big><BR>\\r\\n</FONT>\\r\\n<blockquote>\\r\\n<TABLE border=0 cellPadding=1 width=\\\"80% \\\">\\r\\n<TR><TD>\\r\\n<FONT face=\\\"Helvetica\\\">\\r\\n<big>Network Error (dns_unresolved_hostname)</big>\\r\\n<BR>\\r\\n<BR>\\r\\n</FONT>\\r\\n</TD></TR>\\r\\n<TR><TD>\\r\\n<FONT face=\\\"Helvetica\\\">\\r\\nYour requested host \\\"registry.local\\\" could not be resolved by DNS.\\r\\n</FONT>\\r\\n</TD></TR>\\r\\n<TR><TD>\\r\\n<FONT face=\\\"Helvetica\\\">\\r\\n\\r\\n</FONT>\\r\\n</TD></TR>\\r\\n<TR><TD>\\r\\n<FONT face=\\\"Helvetica\\\" SIZE=2>\\r\\n<BR>\\r\\nFor assistance, contact your network support team.\\r\\n</FONT>\\r\\n</TD></TR>\\r\\n</TABLE>\\r\\n</blockquote>\\r\\n</FONT>\\r\\n</BODY></HTML>\\r\\n\""

我的 NO_PROXY 环境变量内容。

$ echo $NO_PROXY
localhost,127.0.0.1/8,::1,192.168.99.0/8,registry.local
docker docker-registry
1个回答
0
投票

问题是我需要正确配置代理背后的docker。

我觉得代理相关的环境变量就够了(HTTP_PROXY, HTTPS_PROXYNO_PROXY).

你可以找到如何在代理背后配置docker的方法 此处.

我刚刚加了 NO_PROXY 关于 /etc/systemd/system/docker.service.d/ 等文件。

[Service]
Environment="HTTP_PROXY=http://<proxy-ip>:<proxy-port>/" "NO_PROXY=localhost, 127.0.0.1/8, ::1, 192.168.99.0/8, registry.local"

解决了

© www.soinside.com 2019 - 2024. All rights reserved.