为什么在“192.168.1.1:53:dialup tcp:lookup cdn-registry-1.docker.io:read udp 192.168.1.1:53:I / O timeout”时推送Docker镜像失败?

我推送到Docker Hub上的私人docker库,我不断收到此错误:

2726b5968341: Image successfully pushed 2fd0731064ec: Image successfully pushed 49328a658a81: Image successfully pushed 6beafaa9c78d: Image successfully pushed bb8b822852f4: Image successfully pushed 6a0d258340b1: Pushing FATA[0457] Failed to upload metadata: Put https://cdn-registry-1.docker.io/v1/images/6a0d258340b180fd569ec687653d805ebb70e77c1943ca6cfc9d296392ad79ee/json: dial tcp: lookup cdn-registry-1.docker.io on 192.168.1.1:53: read udp 192.168.1.1:53: i/o timeout 

我在Mac OS上使用boot2docker运行Docker。 在执行了7次以上的push命令之后,它终于成功完成了,但我想我仍然会问。

任何人都看到这个? 提示如何解决?

  • 如果您使用的是docker-machine ,请尝试重新启动它:

     docker-machine restart default 

    注意: 默认是运行docker守护进程的虚拟机的名字。 如果你有多个或不同的名字,那么使用适当的。

  • 如果您正在使用boot2docker ,请重新启动它:

     boot2docker stop boot2docker start 

Interwebsbuild议您在本地的networking问题上; 可能与DNS有关。 我已经尝试了很多东西,但重新启动boot2docker修复它。

如果在重新启动时遇到此问题:

 An error occurred trying to connect: Post https://192.168.59.103:2376/v1.19/images/create?fromImage=...: x509: certificate is valid for 127.0.0.1, 10.0.2.15, not 192.168.59.103 

然后尝试重新安装boot2docker; 请注意,你丢失了所有的本地图像

 boot2docker stop boot2docker delete boot2docker init boot2docker start 

由于https://github.com/boot2docker/boot2docker/issues/968

祝你好运

更新:

无需boot2docker delete了! 修补程序在boot2docker(1.7.1)的后一个版本中合并。

你现在可以boot2docker upgrade ,问题应该修复。

或者,如果这对您来说是个问题,您可以简单地将docker放入boot2docker虚拟机中,如下所示:

boot2docker ssh 'sudo /etc/init.d/docker restart'