kubesphere开发项目时候,需要使用make container进行构建镜像,分享这中间遇到的错误和解决方案,希望大家少踩坑少走弯路
问题1.解决docker的Get https://registry-1.docker.io/v2/: net/http: request canceled 报错
分析原因:ping https://registry-1.docker.io/v2/ 这个地址不通,一般情况是镜像源在国外,查看配置发现镜像源没配置或者不对,尝试换镜像源。
解决方案:
1.使用vim编辑器,创建daemon.json文件
vim /etc/docker/daemon.json
2.写入内容,国内找到两个镜像源。一个是阿里的,一个是中科院的。这里可以填写多个
写入自定义仓库
方案一: { "registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"] }
方案二: { "registry-mirrors":["https://docker.mirrors.ustc.edu.cn/n"] }
或者将两个镜像源都添加进来:
{ "registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn/"] }
_____________________________________________________________________
问题2:docker实战问题:Get “https://registry-1.docker.io/v2/“: context deadline exceeded
在构建镜像的时候会报错,如下:
Get "https://registry-1.docker.io/v2/": context deadline exceeded
所使用的环境是centos。
在网上遇找到一个解决方案,及时修改DNS,修改成一个google的公共DNS 8.8.8.8
具体操作如下
修改文件/etc/resolv.conf
将其改成以下的IP形式:
nameserver 8.8.8.8
nameserver 8.8.4.4
问题3:
docker报错“net/http: TLS handshake timeout”的解决方法
为了永久性保留更改,您可以修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。
{ "registry-mirrors": ["https://registry.docker-cn.com"] }
修改保存后重启 Docker 以使配置生效。
一般来说修改保存成功以后,会建议重启一下docker,在root权限下输入:
[root@localhost]# systemctl daemon-reload
[root@localhost]# systemctl restart docker
备注:没有重启docker,也不再报这个错了。