草庐IT

docker拉取镜像时报错:docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp:

王祺灏 2023-05-14 原文

完整报错信息:

docker: Error response from daemon: Get “https://registry-1.docker.io/v2/”: dial tcp: lookup registry-1.docker.io on 192. 168.100.2:53: server misbehaving.

翻译

守护程序的错误响应:Get“https://registry-1.docker.io/v2/“:在192.168.100.2:53上拨打tcp:lookup registry-1.docker.io:服务器错误


曾经拉取镜像时遇到相似的问题:

  1. 在拉取私有镜像或者上传镜像前需要docker login输入您的凭证信息

Error response from daemon: repository does not exist or may require ‘docker login’

  1. 拉取镜像超时

Error response from daemon:Get https://registry-1.docker.io/v2/…handshake timeout

再次尝试以上两种解决方法均无效


尝试解决:

(1)重启一下docker试试

systemctl restart docker

无效

(2)查看是否为网络问题

网络正常

(3)从网络中搜索大佬类似问题解决方案

他的报错信息与我类似
但是他的信息中,ip后面显示没有这个主机(no such host)
看看他的解决方法:

我和他一样报错信息中也出现了并不存在的 ip
尝试一下他的解决方法:


解决方案

(1)查看DNS客户机的配置文件

cat /etc/resolv.conf


出现了报错信息中的ip
猜测应该是这个DNS服务器出现了问题

(2)修改文件

vim /etc/resolv.conf

注释掉:nameserver 192.168.100.2
新增DNS:nameserver 114.114.114.114 nameserver 8.8.8.8

(3)重新拉取镜像试试

docker pull ubuntu


拉取成功,问题解决!


补充知识:

/etc/resolv.conf是DNS客户机的配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。它的格式比较简单,每行以一个关键字开头,后接一个或多个由空格隔开的参数。

resolv.conf的关键字主要有4个

nameserver:定义DNS服务器的IP地址
domain:定义本地域名
search:定义域名的搜索列表
sortlist:对返回的域名进行排序
注意:这里最主要的就是nameserver关键字,如果没有指定nameserver就找不到DNS服务,其它关键字是可选的。

1)nameserver:表示域名解析时,使用该地址指定的主机为域名服务器,其中域名服务器是按照文件中出现的顺序来查询的,且只有当第一个nameserver没有反应时才查询下面的nameserver。
2)domain:声明主机的域名,很多程序会用到,如邮件系统。当为没有域名的主机进行DNS查询时,也要用到。如果没有域名,主机名将被使用,删除所有在第一个点(.)前面的内容。
3)search:它的多个参数指明域名查询顺序,当要查询没有域名的主机,主机将在由search声明的域中分别查找。
注意:search和domain不能共存,如果同时存在,后面出现的将会被使用。
4)sortlist:运行将得到域名结果进行特定的排序。它的参数为网络/掩码对,允许任意的排列顺序。

有关docker拉取镜像时报错:docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp:的更多相关文章

  1. ruby - Facter::Util::Uptime:Module 的未定义方法 get_uptime (NoMethodError) - 2

    我正在尝试设置一个puppet节点,但ruby​​gems似乎不正常。如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过由ruby​​gems(/usr/bin/facter)安装的二进制文件,它抛出:/usr/lib/ruby/1.8/facter/uptime.rb:11:undefinedmethod`get_uptime'forFacter::Util::Uptime:Module(NoMethodError)from/usr/lib/ruby

  2. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  3. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  4. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  5. ruby-on-rails - 使用 HTTP.get_response 检索 Facebook 访问 token 时出现 Rails EOF 错误 - 2

    我试图在我的网站上实现使用Facebook登录功能,但在尝试从Facebook取回访问token时遇到障碍。这是我的代码:ifparams[:error_reason]=="user_denied"thenflash[:error]="TologinwithFacebook,youmustclick'Allow'toletthesiteaccessyourinformation"redirect_to:loginelsifparams[:code]thentoken_uri=URI.parse("https://graph.facebook.com/oauth/access_token

  6. ruby - 为什么不能使用类IO的实例方法noecho? - 2

    print"Enteryourpassword:"pass=STDIN.noecho(&:gets)puts"Yourpasswordis#{pass}!"输出:Enteryourpassword:input.rb:2:in`':undefinedmethod`noecho'for#>(NoMethodError) 最佳答案 一开始require'io/console'后来的Ruby1.9.3 关于ruby-为什么不能使用类IO的实例方法noecho?,我们在StackOverflow上

  7. ruby-on-rails - 来自 GET/POST 的 Rails 参数 - 2

    我是Rails的新手,正在编写一个登录表单。我使用form_tag将用户的提交传递给帐户Controller。现在,我不希望用户能够通过GET请求输入他们的登录详细信息,那么我如何检查某个参数是GET还是POST参数?提前致谢 最佳答案 在Rails中,您没有特定的POST或GET参数。您确实有一个POST或GET请求。你可以在你的Controller中这样检查它:request.post?或者您可以检查其他HTTP动词:GET、PUT和DELETE:request.get?request.put?request.delete?有关

  8. ruby - 警告 : PATH set to RVM ruby but GEM_HOME and/or GEM_PATH not set, 请参阅 : https://github. com/wayneeseguin/rvm/issues/3212 - 2

    我每次打开终端时都会收到这个错误:警告:PATH设置为RVMruby​​但未设置GEM_HOME和/或GEM_PATH,请参阅:https://github.com/wayneeseguin/rvm/issues/3212这是在我最近安装zsh(oh-my-zsh)后开始发生的我不知道如何设置GEM_HOME和/或GEM_PATH的路径。 最佳答案 我也面临同样的问题,更改.zshrc中的以下行,exportPATH="/usr/local/heroku/bin:.........."到exportPATH="$PATH:/usr/

  9. SCIM v2 的 Ruby 实现 - 2

    SCIM是Google、Salesforce、PingIdentity等提出的用户配置的新标准。是否有现有的ruby​​实现来支持它?SimilarbutforJava 最佳答案 您可以获得一个面向Okta的开始fromhere或从头开始here但我认为您只能靠自己。耶!您有机会为Ruby社区贡献一个开源项目:) 关于SCIMv2的Ruby实现,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

  10. ruby-on-rails - 私有(private) gem 没有安装在 docker 中 - 2

    我正在尝试使用docker运行一个Rails应用程序。通过github的sshurl安装的gem很少,如下所示:Gemfilegem'swagger-docs',:git=>'git@github.com:xyz/swagger-docs.git',:branch=>'my_branch'我在docker中添加了keys,它能够克隆所需的repo并从git安装gem。DockerfileRUNmkdir-p/root/.sshCOPY./id_rsa/root/.ssh/id_rsaRUNchmod700/root/.ssh/id_rsaRUNssh-keygen-f/root/.ss

随机推荐