今天准备搭建一下ELK集群,结果第一步下载镜像时就出了问题,这也是用Docker以来第一次遇到问题,总结一下。
报错如下:
Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 8.8.8.8:53: read udp 192.168.241.128:34634->8.8.8.8:53: i/o timeout
起初把报错信息贴到百度去搜索几乎都是说将8.8.8.8设置为DNS服务器,但是事实是我的已经配过的,如下:
既然很多帖子都是帖的这个,那证明还是有一部分人是这个原因造成的,可以尝试下。
可视化的方式 :就是找个网络配置,修改即可,步骤如下
命令方式 :
vi /etc/resolv.conf
#添加这两行
nameserver 8.8.8.8
nameserver 8.8.4.4
尽管本人不是这个原因,但是既然说到网络了,就决定测试一下网络联通性,毕竟拉取镜像也需要保证网络正常通信, 于是便Ping了一波百度,也是ok的。
之后在国外的网站StackOverFlow也看到一些类似的解释,但是其中一个说是docker服务的问题,于是就决定重启一下docker服务。
输入 systemctl restart docker
但是好像并没有什么作用,突然有个奇怪的想法,觉得会不会是restart没起作用啊,觉得关停一下docker服务试试,systemctl stop docker ,结果提示了这句话:
Warning: Stopping docker.service, but it can still be activated by: docker.socket
百度一波,原来这是因为除了docker.service单元文件,还有一个docker.socket单元文件…docker.socket这是用于套接字激活。该警告意味着:如果你试图连接到docker socket,而docker服务没有运行,系统将自动启动docker。
解决方案一
你可以删除 /lib/systemd/system/docker.socket
从docker中 docker.service 文件 删除 fd://,即remove -H fd://
解决方案二
如果不想被访问时自动启动服务
输入命令:sudo systemctl stop docker.socket
当然,也可以不用管。总之这个警告不是太需要关注的点,我们继续重启操作。
重启如果报错:Failed to restart docker.service: Unit docker.service not found.
可能需要重装,但是如果docker是通过 snap install docker 命令安装的,出现这个问题并不需要,重启命令换位 sudo systemctl restart docker 即可。
正常重启完成之后发现就可以正常拉取镜像了。
重启后还是会有类似的错误提示,解决方案:Docker pull 命令报错整理_To Do.的博客-CSDN博客