前阵子发现阿里云的docker加速镜像失效了(甚至连nginx都拉取不了),重新换了并且加多了网络上比较常用的dokcer加速源,可以解决一部分问题,但仍然有一些镜像的某个版本或一些比较冷的镜像就是拉取不了,原因未知。
并且经常出现
Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
这个报错其实本质没啥问题,网络问题需要多试几次或重启主机,只要daemon.json配了就行,测试能不能拉取nginx、nginx:1.12这两个镜像。(我经常使用这个方法测试加速地址是否失效),
需要自取,本文重点不是这个
{"registry-mirrors": ["https://docker.m.daocloud.io","https://dockerproxy.com","https://9cpn8tt6.mirror.aliyuncs.com","https://mirror.baidubce.com","https://ccr.ccs.tencentyun.com","https://docker.nju.edu.cn","https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com","https://mirror.ccs.tencentyun.com","http://hub-mirror.c.163.com","https://dockerhub.azk8s.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://registry.cn-hangzhou.aliyuncs.com","http://ef017c13.m.daocloud.io"]
}
github有时访问不稳定,换个时间就可以
采用离线的方法下载镜像tar包,再使用docker load转换成镜像文件。需要使用github的DockerTarBuilder项目:https://github.com/wukongdaily/DockerTarBuilder
选择“Actions”,选择“I understand ......”,这里我创建过,所以不一样
此处输入镜像的详细名,例如flink:1.11.2的完整镜像名是library/flink:1.11.2,否则搜索不到,注意左边要选x86-64
点击进去就可以查看离线包是否上传github,手动下载离线包,下载后是一个zip文件,传输到docker服务器,注意使用scp时候,源主机路径不能带中文。
解压后是一个tar.gz文件,再解压才是tar包,我们需要的是tar包
┌──(root㉿kali)-[/opt/flink]
└─# tar -zxvf x86-64-images.tar.gz
flink:1.11.2-amd64.tar┌──(root?kali)-[/opt/flink]
└─# ls
flink:1.11.2-amd64.tar x86-64-images.tar.gz#docker load导入镜像
┌──(root?kali)-[/opt/flink]
└─# docker load < flink:1.11.2-amd64.tar ┌──(root?kali)-[/opt/flink]
└─# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
flink 1.11.2 c3d54adbf244 3 years ago 625MB
导入成功
参考:无需魔法!一招快速解决docker镜像无法拉取问题!_服务软件_什么值得买