59

我在我的 Mac 系统 10.11.6 中遇到了这个问题

system3:postgres saurabh-gupta2$ docker build -t postgres .
Sending build context to Docker daemon  38.91kB
Step 1/51 : FROM registry.access.redhat.com/rhel7/rhel
Get https://registry.access.redhat.com/v2/: Service Unavailable

docker run  -t apline 
Unable to find image 'apline:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: Service Unavailable.
See 'docker run --help'.

我一直在寻找一个说设置代理的解决方案,但我已经为 wifi 设置了代理。

https://docs.docker.com/docker-for-mac/networking/#httphttps-proxy-support

尽管如此,它仍然无法正常工作。

我也为 docker 设置了代理。它不工作。

在偏好 -> 代理

Docker 版本 17.12 ce

我还想知道代理是否是问题,那么我该如何检查它是否已设置,有什么解决方法?

4

25 回答 25

38

这里有几点建议:

  1. 尝试重新启动 Docker 服务。
  2. 检查您的网络连接。例如,通过以下 shell 命令:

    </dev/tcp/registry-1.docker.io/443 && echo Works || echo Problem
    curl https://registry-1.docker.io/v2/ && echo Works || echo Problem
    
  3. 检查您的代理设置(例如在 中/etc/default/docker)。

如果上面没有帮助,这可能是 Docker 服务的临时问题(根据Service Unavailable)。

相关:GH-842 - 503 服务在 http://hub.docker.com 不可用

过去几天我遇到了这个问题,之后它才起作用。

您可以考虑在docker/hub-feedbackrepo上提出问题,查看Docker 社区论坛,或直接联系Docker 支持

于 2018-04-26T12:26:41.353 回答
18

我尝试在 Windows 上运行,并在更新后遇到此问题。我尝试重新启动 docker 服务以及我的电脑,但没有任何效果。

运行时:

curl https://registry-1.docker.io/v2/ && echo Works

我回来了:

{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}
Works

最终,我尝试了: https ://github.com/moby/moby/issues/22635#issuecomment-284956961

通过将固定地址更改为 8.8.8.8: 在此处输入图像描述

这对我有用!我仍然收到未经授权的消息,curl https://registry-1.docker.io/v2/但我设法从 docker hub 中提取图像。

于 2018-12-03T01:16:52.440 回答
12

对我来说,当我第一次安装 Docker 并运行时遇到了这个问题

docker run hello-world

运行时出现需要身份验证的错误

curl https://registry-1.docker.io/v2/ && echo Works

我需要做的就是重新启动我的 MacOS,然后再次运行命令,它刚刚开始提取图像,我收到了消息

Hello from Docker!
This message shows that your installation appears to be working correctly.
于 2018-10-30T16:39:05.107 回答
12
docker logout
docker login

这可能会解决您的问题

于 2020-07-02T11:49:01.567 回答
7

这显然是一个代理问题:docker proxies https 连接到错误的地方。请记住,docker 代理设置可能与操作系统(和 curl)的设置不同。这是我设法解决问题的方法:

首先,找出你在哪里代理你的 docker https 请求:

# docker info | grep Proxy
Http Proxy: http://<my.proxy.server>:8080
Https Proxy: https://<my.proxy.server>:8080
No Proxy: localhost,127.0.0.1

并仔细检查您的 https 设置。

就我而言,我意识到“Https 代理”设置为https://...而不是http://...,所以我在/etc/sysconfig/docker文件中更正了它(我使用的是 RHEL7),并且在 docker 重新启动后:

# systemctl restart docker

代理变量显示成功更新:

# docker info | grep Proxy
Http Proxy: http://<my.proxy.server>:8080
Https Proxy: http://<my.proxy.server>:8080
No Proxy: localhost,127.0.0.1

一切正常:-)

于 2019-10-07T16:29:22.927 回答
4

在 MAC 上对我有用的一个选项。

单击托盘中的 Docker 图标。打开首选项-> 代理。单击手动代理并以与我们在 HTTPS_PROXY 环境变量中指定的相同格式指定 Web 服务器 (HTTP) 代理和安全 Web 服务器 (HTTPS) 代理。选择应用并重新启动。

这对我有用

于 2019-08-26T04:49:39.090 回答
4

对我来说,问题是通过重新启动 docker 守护进程解决的:

sudo systemctl restart docker
于 2019-07-01T11:01:35.050 回答
3

尝试重新加载守护进程,然后重新启动 docker 服务。

systemctl daemon-reload
于 2019-02-14T09:43:54.230 回答
3
  1. 使用以下命令重新检查代理设置

    码头信息 | grep 代理

  2. 检查 VPN 连接

  3. 如果 VPN 不使用 CHECK NET 连接

  4. 重新安装 Docker 并重复上述步骤。

  5. 享受

于 2020-10-26T12:04:37.610 回答
2

只是补充一下,以防其他人遇到这个问题。

在 Mac 上,我必须注销并重新登录。

docker logout

docker login 

然后它提示输入用户名(注意:不是电子邮件)和密码。(需要https://hub.docker.com上的帐户才能将图像拉下来)

然后它对我有用。

于 2019-02-27T19:34:42.273 回答
2
NTML PROXY AND DOCKER 

If your company is behind MS Proxy Server that using the proprietary NTLM protocol.

You need to install **Cntlm** Authentication Proxy

After this SET the proxy in 
/etc/systemd/system/docker.service.d/http-proxy.conf) with the following format:

[Service]

Environment=“HTTP_PROXY=http://<<IP OF CNTLM Proxy Server>>:3182”

In addition you can set in the .DockerFile
export http_proxy=http://<<IP OF CNTLM Proxy Server>>:3182
export https_proxy=http://<IP OF CNTLM Proxy Server>>:3182
export no_proxy=localhost,127.0.0.1,10.0.2.*

Followed by:
systemctl daemon-reload

systemctl restart docker

这对我有用

于 2019-03-01T12:42:56.307 回答
2

在Ubuntu服务器上工作时,我遇到了同样的问题。

我收到以下错误:

deploy@my-comp:~$ docker login -u my-username -p my-password
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp 35.175.83.85:443: connect: connection refused

以下是我尝试但不起作用的事情

  • 使用重新启动 docker 服务sudo docker systemctl restart docker
  • 关闭并重新启动 Ubuntu 服务器。
  • /etc/resolv.conf在文件中将名称服务器更改为 8.8.8.8

这对我有用

netcat我尝试使用以下命令检查服务器是否可以访问互联网:

nc -vz google.com 443

它返回了这个输出:

nc: connect to google.com port 443 (tcp) failed: Connection refused
nc: connect to google.com port 443 (tcp) failed: Network is unreachable

而不是这样的:

Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Connected to 172.217.166.110:443.
Ncat: 0 bytes sent, 0 bytes received in 0.07 seconds.

wget我尝试使用以下命令再次检查服务器是否可以访问互联网:

wget -q --spider http://google.com ; echo $?

它返回了:

4

代替:

0

注意:输出中除 0 以外的任何内容都表示您的系统未连接到互联网

然后我最后一次尝试服务器是否可以使用以下Nmap命令访问互联网:

nmap -p 443 google.com

它返回了:

Starting Nmap 7.01 ( https://nmap.org ) at 2021-02-16 11:50 WAT
Nmap scan report for google.com (216.58.223.238)
Host is up (0.00052s latency).
Other addresses for google.com (not scanned): 2c0f:fb50:4003:802::200e
rDNS record for 216.58.223.238: los02s04-in-f14.1e100.net
PORT    STATE  SERVICE
443/tcp closed https

Nmap done: 1 IP address (1 host up) scanned in 1.21 seconds

取而代之的是这样的:

Starting Nmap 7.01 ( https://nmap.org ) at 2021-02-16 11:50 WAT
Nmap scan report for google.com (216.58.223.238)
Host is up (0.00052s latency).
Other addresses for google.com (not scanned): 2c0f:fb50:4003:802::200e
rDNS record for 216.58.223.238: los02s04-in-f14.1e100.net
PORT    STATE  SERVICE
443/tcp open https

Nmap done: 1 IP address (1 host up) scanned in 1.21 seconds

注意:端口的状态443/tcp关闭而不是打开

这一切足以让我意识到服务器上不允许连接到互联网。

我所要做的就是与负责基础设施的团队交谈,以解决服务器上与互联网的网络连接问题。一旦解决了这个问题,我的 docker 命令就开始正常工作了。

资源: 9 个命令来检查是否连接到互联网与 shell 脚本示例

就这样。

我希望这有帮助

于 2021-02-16T15:58:28.063 回答
1

我的 /etc/hosts 文件中有以下条目:

34.228.211.243  registry-1.docker.io
34.205.88.205   auth.docker.io
104.18.121.25   production.cloudflare.docker.com

只需将它们注释掉,我就解决了问题。

于 2020-05-23T16:20:05.650 回答
1

从阻止进出 Docker 相关进程的流量的网络过滤器(macOS 上的 LuLu)获得此信息。

于 2019-03-10T17:11:40.280 回答
1

我第一次安装 Docker 并运行时遇到了这个问题

docker run hello-world

我在公司网络上,切换到我的个人网络为我解决了这个问题。

于 2020-03-02T09:33:12.203 回答
1
  1. 项目清单

上面有很多好的答案,但我的与 Mac 和 Docker 桌面 UI 有点不同。就我而言,这是一个桌面代理设置,当我在公司防火墙/代理之外时需要关闭它:

ERROR message from docker CLI:
Username: xxx
Password: *** 
Error response from daemon: Get https://registry-1.docker.io/v2/: Service Unavailable
  1. 我的环境:Mac 机,带有 Docker UI(即称为 Docker Desktop,显示为鲸鱼图标),在公司防火墙/代理之外运行。
  2. 我可以使用 Docker 桌面 UI 登录。
  3. 但是,无论是 docker login 还是 docker pull,我都不断收到上述错误,并且我进入了用户 ID,重置了守护进程,...
  4. 最后,我进入了 Docker 桌面 UI。果然,有一个代理设置,我很久以前设置的,完全忘记了!
  5. 是的,当我在防火墙之外时,我需要在这里关闭代理设置。Docker 桌面 -> 首选项 -> 资源 -> 代理。Turn 关闭手动代理配置。然后 docker pull 工作(没有 docker login 因为我正在拉公共图像)!

谢谢 PS。我认为 Docker Desktop 和 Docker CLI 的行为差异导致了混乱。我可以通过 GUI 登录到 docker,并且 CLI 在没有足够好的诊断信息的情况下不断出错。

于 2021-03-10T19:15:00.863 回答
0

只是重新加载系统,这对我有帮助。(Windows 10 64x)

于 2021-09-30T06:18:13.210 回答
0

此处提供的答案令人惊叹,但是如果您是新手并且没有意识到完全错误,那么您可能会在该错误net/http: TLS handshake timeout.消息的末尾看到意味着您的互联网连接速度较慢。所以只能是那个问题。面条

于 2020-03-24T09:38:45.673 回答
-1

您可能需要检查的问题之一是,注册表是否需要 VPN,启用您的 VPN 并再次尝试拉取。

谢谢。

于 2020-06-18T06:40:00.970 回答
-1

就我而言,停止 Proxifier 修复了它。vpnkit.exe我添加了一条规则来从as路由任何连接,Direct现在它可以工作了。

于 2020-06-01T07:25:11.650 回答
-1

好的,我有一个类似的问题,似乎没有任何帮助,重新启动 docker,禁用 IPv6,nslookup 和 dig 一切似乎都很好。

对我有用的是我的 Docker 桌面 -> 首选项 -> 实验功能并取消选中使用新的虚拟化框架。

于 2021-06-15T23:02:17.453 回答
-1

我已经解决了这个关于$ sudo docker run hello-world遵循Docker 文档的问题。

如果您在公司的 HTTP 代理服务器后面,这可能会解决您的问题。

Docker 文档还显示了有关 HTTP 代理设置的其他情况。

于 2020-04-23T05:50:50.073 回答
-1

docker login 终端命令对我有用。

如果您的机器需要 VPN,则必须先连接 VPN 并尝试 docker login。

于 2021-07-09T12:06:28.497 回答
-2

运行export DOCKER_CONTENT_TRUST=0,然后再试一次。

于 2019-08-08T13:18:42.987 回答
-2

--tls在拉取请求中使用。例如,如果原始拉取请求是docker pull dgraph/dgraph:v21.03.0 使用这个代替:docker --tls pull dgraph/dgraph:v21.03.0

于 2021-07-04T16:41:26.207 回答