来自 daemon 的错误响应 https://registry-1.DOCKER.io/v2/ : 服务不可用 DOCKER,MAC

我的 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 版本17.12 ce

我还想知道,如果代理是问题,那么我如何检查它是设置,什么是工作围绕这一点?

292811 次浏览

以下是一些建议:

  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. Check your proxy settings (e.g. in /etc/default/docker).

If above won't help, this could be a temporary issue with the Docker services (as per Service Unavailable).

Related: GH-842 - 503 Service Unavailable at http://hub.docker.com.

I had this problem for past days, it just worked after that.

You can consider raising the issue at docker/hub-feedback repo, check at, Docker Community Forums, or contact Docker Support directly.

对于我来说,当我第一次安装 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.

我试过在 Windows 上运行,在升级之后遇到了这个问题。我试着重启码头服务和我的电脑,但都没用。

跑步时:

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: enter image description here

这招对我很管用! 我仍然得到未经授权的信息 curl https://registry-1.docker.io/v2/但我设法从码头中心提取图像。

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

systemctl daemon-reload

顺便说一句,以防其他人碰到这个问题。

在 Mac 上 我不得不注销并重新登录。

docker logout


docker login

然后它会提示输入用户名(注意: 不是电子邮件)和密码

然后我就成功了。

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

这招对我很管用

这是通过阻塞与 Docker 相关进程之间的通信的网络过滤器(MacOS 上的 LuLu)得到的。

对我来说,这个问题通过重新启动 docker 守护进程得到了解决:

sudo systemctl restart docker

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

一个在 MAC 上对我有效的选择。

单击托盘中的 Docker 图标。开放首选项-> 代理。单击 ManualProxy 并按照 HTTPS _ PROXY env 变量中指定的格式指定 Web 服务器(HTTP)代理和安全 Web 服务器(HTTPS)代理。 选择“应用”并重新启动。

这招对我很管用

这显然是一个代理问题: Docker 代理 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

一切都很好: -)

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

docker run hello-world

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

答案在这里提供了惊人的,但如果你是新的,你没有意识到完全错误,然后你可能会看到在错误的结尾 net/http: TLS handshake timeout.消息意味着你有一个缓慢的互联网连接。所以只能是这个问题。 再见

我已经解决了这个问题关于 $ sudo docker run hello-world以下的 Docker Doc

如果您使用的是公司的 HTTP 代理服务器,这可能会解决您的问题。

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

在/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

只要把它们注释掉,问题就解决了。

在我的情况下,停止代理修复它。我添加了一个规则,将来自 vpnkit.exe的任何连接路由为 Direct,现在它可以工作了。

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

谢谢。

docker logout
docker login

这也许能解决你的问题

  1. 使用以下命令重新检查代理设置

    Docker info | grep Proxy

  2. 检查 VPN 连接

  3. 如果 VPN 没有使用 CHECKNET 连接

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

  5. 好好享受吧

我在使用 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

以下是我尝试过但没有成功的方法:

  • 使用 sudo docker systemctl restart docker重新启动 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以外的任何值都意味着您的系统没有连接到 Internet

然后,我尝试了最后一次,如果服务器有访问互联网使用以下 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的状态为 关门了,而不是 < strong > open

所有这些都足以让我意识到服务器上不允许连接到互联网。

我所要做的就是与负责基础设施的团队交谈,解决服务器上互联网的网络连接问题。修好之后,我的 Docker 命令就开始工作了。

资源 : < a href = “ https://www.golinuxcloud. com/command-check-if-connect-to-internet-shell/”rel = “ nofollow noReferrer”> 9个命令用 shell 脚本示例检查是否连接到 Internet

仅此而已。

希望这个能帮上忙

  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. 我的 env: 带有 Docker UI 的 Machine Mac (即称为 Docker Desktop, 显示为鲸鱼图标) ,运行在公司防火墙/代理服务器之外。
  2. 我能够登录与多克桌面用户界面。
  3. However, whether docker login or docker pull, I kept getting the above error and I got sidetrack into the user id, reset the daemon, ...
  4. 最后,我得到了 Docker 桌面 UI。果然,有一个代理设置,我已经设置了很久以前,并完全忘记了它!
  5. 是的,当我在防火墙之外时,我需要在这里关闭代理设置。 Docker 桌面-> 首选项-> 资源-> 代理 关闭手动代理配置。 然后码头拉工程(没有码头登录,因为我是拉一个公共形象) !

谢谢 附言。我认为 Docker 桌面和 Docker CLI 的行为差异导致了混乱。我能够通过 GUI 登录到 docker,而 CLI 在没有足够好的诊断信息的情况下不断出错。

好吧,我有一个类似的问题,似乎没有什么帮助,重新启动码头,禁用 IPv6和 nslookup 和挖掘似乎都很好。

对我有效的是使用我的 Docker 桌面-> 首选项-> 实验特性和取消选中使用新的虚拟化框架。

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

码头登录终端命令为我工作。

如果您的计算机需要 VPN,那么必须首先连接到 VPN,然后尝试 Docker 登录。

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

在我的 Windows 11中,我所做的只是首先登录我的帐户

docker login

使用 Linux。对我来说,它的工作方式是:

  1. $码头注销
  2. 退出 hub.docker.com
  3. 登录 hub.docker.com
  4. $docker login

你有没有创建一个回购与匹配标记的目标码头枢纽?这可能是因为您的容器映像没有被推到的位置。

检查容器是否启用?

  • Goto-> 打开/关闭窗口功能,然后启用容器的复选框
  • 重启窗口。

使用 root帐户而不是我的常规用户帐户为我解决了这个问题。