安装完docker,拉取镜像报错Unable to find image ‘hello-world:latest‘ ...

打印 上一主题 下一主题

主题 817|帖子 817|积分 2451

安装完docker后测试是否成功安装,拉取hello-world镜像进行测试
报以下错误
  1. Unable to find image 'hello-world:latest' locally
  2. docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
  3. See 'docker run --help'.
复制代码
  Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.
 
  刚开始以为是权限问题
  直接把daemon.json文件加权限 ,照旧报错
  [root@localhost docker]# chmod 777 daemon.json 
[root@localhost docker]# sudo systemctl daemon-reload
[root@localhost docker]# sudo systemctl restart docker
[root@localhost docker]# docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 108.160.166.137:443: i/o timeout (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.
 
  在网上搜了几种方法,基本都是镜像源的问题,我这里已经添加了阿里云的镜像源,照旧会报这个错误,尝试使用其他镜像源
   [root@localhost docker]# cat daemon.json 
{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}
更改完镜像源后,重启docker进行重新拉取hello-world,发现照旧报错
  此时进行docker info进行查看,发现有个报错
  WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
  于是进行解决这个报错
  1. [root@localhost docker]# docker info
  2. Client: Docker Engine - Community
  3. Version:    26.1.4
  4. Context:    default
  5. Debug Mode: false
  6. Plugins:
  7.   buildx: Docker Buildx (Docker Inc.)
  8.     Version:  v0.14.1
  9.     Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  10.   compose: Docker Compose (Docker Inc.)
  11.     Version:  v2.27.1
  12.     Path:     /usr/libexec/docker/cli-plugins/docker-compose
  13. Server:
  14. Containers: 0
  15.   Running: 0
  16.   Paused: 0
  17.   Stopped: 0
  18. Images: 0
  19. Server Version: 26.1.4
  20. Storage Driver: overlay2
  21.   Backing Filesystem: xfs
  22.   Supports d_type: true
  23.   Using metacopy: false
  24.   Native Overlay Diff: true
  25.   userxattr: false
  26. Logging Driver: json-file
  27. Cgroup Driver: cgroupfs
  28. Cgroup Version: 1
  29. Plugins:
  30.   Volume: local
  31.   Network: bridge host ipvlan macvlan null overlay
  32.   Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
  33. Swarm: inactive
  34. Runtimes: io.containerd.runc.v2 runc
  35. Default Runtime: runc
  36. Init Binary: docker-init
  37. containerd version: d2d58213f83a351ca8f528a95fbd145f5654e957
  38. runc version: v1.1.12-0-g51d5e94
  39. init version: de40ad0
  40. Security Options:
  41.   seccomp
  42.    Profile: builtin
  43. Kernel Version: 3.10.0-693.el7.x86_64
  44. Operating System: CentOS Linux 7 (Core)
  45. OSType: linux
  46. Architecture: x86_64
  47. CPUs: 4
  48. Total Memory: 7.781GiB
  49. Name: localhost.localdomain
  50. ID: ac6faaa2-00de-445a-b6e0-7fba22e5a500
  51. Docker Root Dir: /var/lib/docker
  52. Debug Mode: false
  53. Experimental: false
  54. Insecure Registries:
  55.   127.0.0.0/8
  56. Registry Mirrors:
  57.   https://do.nark.eu.org/
  58.   https://dc.j8.work/
  59.   https://docker.m.daocloud.io/
  60.   https://dockerproxy.com/
  61.   https://docker.mirrors.ustc.edu.cn/
  62.   https://docker.nju.edu.cn/
  63. Live Restore Enabled: false
  64. WARNING: bridge-nf-call-iptables is disabled
  65. WARNING: bridge-nf-call-ip6tables is disabled
复制代码
做一下修改和配置来解决这个问题。
由于将linux体系作为路由或者VPN服务就必须要开启IP转发功能。当linux主机有多个网卡时一个网卡收到的信息是否能够通报给其他网卡,假如设置成1的话可以进行数据包转发,可以实现VxLAN等功能,不开启会导致docker摆设应用无法访问。
   1.开启包转发功能和修改内核参数
  br_netfilter模块用于将桥接流量转发至iptables链,br_netfilter内核参数则需要开启转发。
  执行以下命令:
  [root@localhost docker]# modprobe br_netfilter
  [root@localhost docker]# cat > /etc/sysctl.d/docker.conf <<EOF
> net.bridge.bridge-nf-call-ip6tables=1
> net.bridge.bridge-nf-call-iptables = 1
> net.ipv4.ip_forward = 1
> EOF
  重新加载使配置生效
[root@localhost docker]# sysctl -p /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
  查看配置是否生效
[root@localhost docker]# lsmod | grep br_netfilter
br_netfilter           22209  0 
bridge                136173  1 br_netfilter
  
  当重启Docker后以上模块配置会失效,为确保下次重启后依然生效,可设置开机主动加载模块的脚本。
  首先,在/etc/目录下新建rc.sysinit文件,输入命令:vim /etc/rc.sysinit,然后再编辑器界面输入一下命令:
  [root@localhost docker]# vim /etc/rc.sysinit
  #!/bin/bash
for file in /etc/sysconfig/modules/*.modules ; do
[ -x $file ] && $file
done
  
  在/etc/sysconfig/modules/目录下新建文件br_netfilter.modules
[root@localhost docker]# cd /etc/sysconfig/modules/
[root@localhost modules]# ls
[root@localhost modules]# vim br_netfilter.modules
  modprobe be_netfilter
  给 br_netfilter.modules文件授权
[root@localhost modules]# chmod 755 /etc/sysconfig/modules/br_netfilter.modules 
[root@localhost modules]# systemctl restart docker
再次docker info 发现报错信息已经没了
  再次docker run hello-world进行拉取镜像,发现解决了
  


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

九天猎人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表