Docker Search失败,但是Pull成功的解决方法(环境:腾讯云服务器CentOS7系统安装Docker)
- 背景
- 解决思路
背景
在安装完成Docker后,成功启动Docker(Systemctl start Docker),使用搜索镜像命令(Docker search [ImageName])得到超时响应。
解决思路
按照网上分享的解决方式
- 修改daemon.json文件
修改daemon.json文件(vim /etc/docker/daemon.json),修改Docker使用国内镜像进行Search/Pull。
(第一次安装Docker,可能打开该文件是空的,需要自己输入下图中的注册镜像——“registry-mirrors”)。
然后重新加载该Docker守护进程Json文件。重启Docker后再次Search还是超时。
2.检查网络连接及防火墙(由于验证可以pull,因此本步骤可以省略)
ping一下百度等网站,看服务器和外部网络是否正常。关闭服务器防火墙验证是否防火墙导致(测试步骤,防火墙关闭会引起服务器被攻击)
3. 修改DNS配置
使用命令(vim /etc/resolv.conf)修改resolv.conf文件,增加如下配置
重启Docker,测试Search。
4. 最终解决方法
在Search是使用命令:docker search register.liberx.info/[imageName]
而不是直接docker search [imageName]
问题原因
我们在daemon.json文件中配置的镜像地址,只会在docker Pull时被使用,而docker search时使用的仍然是Docker默认搜索地址,在国内就会造成超时。
因此我们在search时可以指定地址来避免这种情况。
总结
由于本人是刚接触Docker,该问题我折腾了大半天,最后找到该替代方法解决Search问题。
但这种替代方法绝对不是最优解,一定是配置或系统还存在问题,仍然希望找到该问题正确解决方法的朋友能前来指正。