我在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
我还想知道代理是否有问题,如何检查它是否已设置,有什么解决方法?我走错路吗?
修改
每个答案都有帮助,所以分享你如何解决这个问题。
答案 0 :(得分:11)
以下是一些建议:
检查您的网络连接。例如,通过以下shell命令:
</dev/tcp/registry-1.docker.io/443 && echo Works || echo Problem
curl https://registry-1.docker.io/v2/ && echo Works || echo Problem
检查proxy settings(例如/etc/default/docker
)。
如果上面没有帮助,这可能是Docker服务的临时问题(根据服务不可用)。
相关:GH-842 - 503 Service Unavailable at http://hub.docker.com。
过去几天我遇到了这个问题,之后就开始工作了。
您可以考虑在docker/hub-feedback
repo处提出问题,检查,Docker Community Forums或直接与Docker Support联系。
答案 1 :(得分:4)
对我来说,我第一次安装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.
答案 2 :(得分:3)
我尝试在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
为我工作的人!
我仍然收到curl https://registry-1.docker.io/v2/
的未经授权的消息,但是我设法从docker hub提取了图像。
答案 3 :(得分:2)
docker logout
docker login
这可能会解决您的问题
答案 4 :(得分:1)
此处提供的答案非常了不起,但是,如果您是其中的新手,而您没有意识到完整的错误,那么您可能会在该错误net/http: TLS handshake timeout.
消息的结尾看到,这表示您的互联网连接速度很慢。因此,仅此一个问题就可以了。
面条
答案 5 :(得分: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
谢谢 附注。我认为 Docker Desktop 和 Docker CLI 的行为差异导致了混淆。我可以通过 GUI 登录到 docker,但 CLI 不断出错,没有足够好的诊断信息。
答案 6 :(得分:1)
我在 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 服务/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 commands to check if connected to internet with shell script examples
仅此而已。
我希望这会有所帮助
答案 7 :(得分: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
只需注释掉它们,我就解决了问题。
答案 8 :(得分:1)
在MAC上对我有用的一个选项。
单击托盘中的Docker图标。打开首选项->代理。单击“手动代理”,并以与我们在HTTPS_PROXY env变量中指定的格式相同的格式指定Web服务器(HTTP)代理和安全Web服务器(HTTPS)代理。 选择“应用并重新启动”。
这对我有用
答案 9 :(得分:1)
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
这对我有用
答案 10 :(得分:1)
只需添加,以防其他人遇到此问题。
在Mac上 我必须注销并重新登录。
docker logout
docker login
然后提示输入用户名(注意:不是电子邮件)和密码。 (需要一个https://hub.docker.com帐户才能拉取图像)
然后它对我有用。
答案 11 :(得分:0)
运行export DOCKER_CONTENT_TRUST=0
,然后重试。
答案 12 :(得分:0)
这显然是一个代理问题: docker代理https连接到错误的位置。请记住,泊坞窗代理设置可能与操作系统(和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
一切正常:-)
答案 13 :(得分:0)
我第一次安装Docker并运行时遇到了这个问题
onViewCreated()
我在公司网络上,切换到个人网络为我解决了这个问题。
答案 14 :(得分:0)
对我来说,问题是通过重新启动docker守护程序解决的:
sudo systemctl restart docker
答案 15 :(得分:0)
在docs for Request Data之后,我已经解决了有关$ sudo docker run hello-world
的问题。
如果您在企业的HTTP代理服务器后面,则可以解决您的问题。
Docker doc还显示有关HTTP代理设置的其他情况。
答案 16 :(得分:0)
从网络过滤器(在macOS上为LuLu)得到了这一点,从而阻止了与Docker相关的进程之间的通信。
答案 17 :(得分:0)
就我而言,停止Proxifier可以修复它。我添加了一条规则,将来自vpnkit.exe
的所有连接路由为Direct
,现在它可以正常工作。
答案 18 :(得分:0)
您可能需要检查的问题之一是, 注册表是否需要VPN, 启用您的VPN,然后尝试再次拉动。
谢谢。
答案 19 :(得分:0)
使用以下命令重新检查代理设置
码头工人信息| grep代理
检查VPN连接
如果VPN不使用CHECK NET连接
重新安装Docker并重复上述步骤。
享受
答案 20 :(得分:0)
尝试重新加载守护程序,然后重新启动docker服务。
~$ systemctl daemon-reload
答案 21 :(得分:0)
好的,我有一个类似的问题,但似乎没有任何帮助,重新启动 docker,禁用 IPv6,nslookup 和 dig 一切似乎都很好。
对我有用的是转到我的 Docker 桌面 -> 首选项 -> 实验性功能并取消选中使用新的虚拟化框架。
答案 22 :(得分:-1)
在拉取请求中使用 --tls
。
例如,如果原始拉取请求是 docker pull dgraph/dgraph:v21.03.0
改用这个:docker --tls pull dgraph/dgraph:v21.03.0
答案 23 :(得分:-1)
docker login 终端命令对我有用。
如果您的机器需要 VPN,则必须先连接 VPN 并尝试 docker 登录。