项目组最近申请到了几台华为云服务器,在安装docker并使用的过程遇到了如下报错
[root@node-01 ~]# docker pull kong:0.13
Get https://registry-1.docker.io/v2/: net/http: request canceled
在这里和大家分享下经历,难免会有些许错误,请各位看官不吝赐教。
原因分析
尝试ping registry-1.docker.io 不通确定为网络问题,决定换源
操作流程
解决方案:
创建daemon.json文件
vim /etc/docker/daemon.json
写入自定义仓库
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
重启
[root@node-01]# systemctl daemon-reload
[root@node-01]# systemctl restart docker
搞定,问题解决。
2019/6/20更新
可能会出现修改仓库失败的问题,如果排查不到原因,也可以用手动指定仓库的凡是pull镜像,命令如下
docker pull docker.mirrors.ustc.edu.cn/library/kong:0.13
docker.mirrors.ustc.edu.cn/library/ 就是仓库地址后面跟镜像名即可。
注意:etc/docker/daemon.json里本来就有俩括号,直接在阔括号里面加我标红的那句就可以了,千万千万别加俩大括号,切记!!!(我一直加,弄了俩小时,一直拉不了,一不加,瞬间拉下来了,坑啊!!!!!)
参考:
sudo docker run hello-world
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'.
修改docker镜像源:
docker默认的源为国外官方源,下载速度较慢,可改为国内,加速
方案一
修改或新增 /etc/docker/daemon.json
# vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
systemctl restart docker.service
方案二
修改或新增 /etc/sysconfig/docker,在OPTIONS变量后追加参数 --registry-mirror=https://docker.mirrors.ustc.edu.cn
# vi /etc/sysconfig/docker
OPTIONS='--selinux-enabled --log-driver=journald --registry-mirror=https://docker.mirrors.ustc.edu.cn'
Docker国内源说明:
Docker 官方中国区
https://registry.docker-cn.com
网易
http://hub-mirror.c.163.com
中国科技大学
https://docker.mirrors.ustc.edu.cn
阿里云
https://pee6w651.mirror.aliyuncs.com
最终我用下面的方案解决了:
进入/etc/docker
查看有没有 daemon.json。这是docker默认的配置文件。
如果没有新建,如果有,则修改。
[root@zengmg docker]# vi daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com",“http://hub-mirror.c.163.com"]
}
保存退出。
重启docker服务
service docker restart
成功!