docker构建国内镜像服务
在国内想要下载镜像比较困难,因此很多公司都构建自己的私有仓库。如何搭建私有仓库,请参考《docker私有仓库从无到有》。然而即使私有仓库服务构建完成,但是里面没有镜像,一样很苦恼。今天介绍一下如何利用国内云服务商提供的镜像加速器,来快速下载镜像。
目前国内docker镜像加速器服务商,质量比较好的有阿里云、DaoCloud以及Docker中国。
它们配置都是相同,获取专属加速地址,然后将地址写到docker配置文件/etc/docker/daemon.json中。
一、阿里云加速地址:
1、注册阿里云账号,如果有淘宝号也是可以的。https://dev.aliyun.com/search.html
2、注册并登陆成功之后,进入之后点击管理中心
3、进入管理中心,默认业务就是下图,然后在选择镜像加速器,里面就是专属加速地址,并且有配置方法。
DaoCloud配置方式与阿里云类似,只是服务商不一样罢了。
二、 Docker 中国
如果不想注册阿里云,那么可以使用Docker中国提供的服务。
可以将https://registry.docker-cn.com,设置到registry-mirrors中即可(与阿里云设置方式一样)。具体方法,可参考https://www.docker-cn.com/registry-mirror。
以上设置好镜像之后,不需要docker login进行登录。
三、遇到问题
问题1:设置完加速地址之后,输入如下命令:
[root@localhost docker]# docker pull mysql
Using default tag: latest
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)
[root@localhost docker]#
[root@localhost docker]#
查看具体日志信息:
[root@localhost docker]# grep docker /var/log/messages
Mar 7 15:59:06 localhost dockerd: time="2018-03-07T15:59:06.551882623+08:00" level=warning msg="Error getting v2 registry: Get https://6jwksk60.mirror.aliyuncs.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
Mar 7 15:59:06 localhost dockerd: time="2018-03-07T15:59:06.551997545+08:00" level=error msg="Not continuing with pull after error: Get https://6jwksk60.mirror.aliyuncs.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
Mar 7 15:59:06 localhost dockerd: time="2018-03-07T15:59:06.552080576+08:00" level=error msg="Handler for POST /v1.35/images/create returned error: Get https://6jwksk60.mirror.aliyuncs.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
Mar 7 15:59:08 localhost dockerd: time="2018-03-07T15:59:08.441427015+08:00" level=debug msg="Calling GET /_ping"
Mar 7 15:59:08 localhost dockerd: time="2018-03-07T15:59:08.449887376+08:00" level=debug msg="Calling GET /v1.35/info"
Mar 7 15:59:08 localhost dockerd: time="2018-03-07T15:59:08.485088164+08:00" level=debug msg="Calling POST /v1.35/images/create?fromImage=mysql&tag=latest"
Mar 7 15:59:08 localhost dockerd: time="2018-03-07T15:59:08.547151332+08:00" level=debug msg="hostDir: /etc/docker/certs.d/6jwksk60.mirror.aliyuncs.com"
Mar 7 15:59:08 localhost dockerd: time="2018-03-07T15:59:08.547231472+08:00" level=debug msg="Trying to pull mysql from https://6jwksk60.mirror.aliyuncs.com/ v2"
Mar 7 15:59:23 localhost dockerd: time="2018-03-07T15:59:23.548000137+08:00" level=warning msg="Error getting v2 registry: Get https://6jwksk60.mirror.aliyuncs.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
Mar 7 15:59:23 localhost dockerd: time="2018-03-07T15:59:23.548084051+08:00" level=info msg="Attempting next endpoint for pull after error: Get https://6jwksk60.mirror.aliyuncs.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
Mar 7 15:59:23 localhost dockerd: time="2018-03-07T15:59:23.548133902+08:00" level=debug msg="Trying to pull mysql from https://registry-1.docker.io v2"
Mar 7 15:59:38 localhost dockerd: time="2018-03-07T15:59:38.548628804+08:00" level=warning msg="Error getting v2 registry: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
Mar 7 15:59:38 localhost dockerd: time="2018-03-07T15:59:38.548715275+08:00" level=info msg="Attempting next endpoint for pull after error: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
Mar 7 15:59:38 localhost dockerd: time="2018-03-07T15:59:38.548798878+08:00" level=error msg="Handler for POST /v1.35/images/create returned error: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
实际错误是:
Get https://6jwksk60.mirror.aliyuncs.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"
【定位过程】
通过curl进行验证:curlhttps://6jwksk60.mirror.aliyuncs.com/v2/_catalog 是可以正常返回结果,说明服务没有问题
通过谷歌翻墙(百度不行,解决不了这个问题),一共大概有两种方式
1、设置dns,在/etc/resolv.conf,以及/etc/docker/daemon.json中增加dns。例如dns地址:8.8.8.8
2、设置docker代理(centos和ubuntu同样设置)
[root@localhost docker]# mkdir -p /etc/systemd/system/docker.service.d[root@localhost docker]# cat > /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF> [Service]> Environment="HTTP_PROXY=http://proxy.example.com:80/" "HTTPS_PROXY=https://proxy.example.com:443/"> EOF[root@localhost docker]#
然后重启服务
[root@localhost docker]# systemctl daemon-reload[root@localhost docker]# systemctl restart docker
查看配置
[root@localhost docker]# systemctl show --property=Environment dockerEnvironment=HTTP_PROXY=http://proxy.example.com:80/ HTTPS_PROXY=https://proxy.example.com:443/[root@localhost docker]#
设置完成后再进行docker pull就可以下载了。
【分析一下原因】
1、通过curl来判断服务是正常的,所以肯定是docker配置问题。
2、当前环境在公司内网,公司是有代理的,因此可以肯定是公司网络问题,通过谷歌搜索,最终确定需要为docker指定代理。
docker构建国内镜像服务相关推荐
- Docker使用国内镜像仓库
Docker使用国内镜像仓库 {"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"] } 找到 ...
- docker构建hadoop镜像、docker-compose启动hdfs
之前使用镜像singularities/hadoop:2.8安装过hdfs,但鉴于这个镜像已经很久没更新了,今天就手动安装一下hadoop,并构建成镜像,方便以后使用. 参考文档:docker构建ha ...
- Docker构建MySQL镜像并初始化
文章目录 Docker构建MySQL镜像并初始化 Dockerfile 的一些常用语法 FROM RUN CMD ENV COPY ADD WORKDIR EXPOSE 构建自带初始化的 MySQL ...
- Docker切换国内镜像下载源
Docker切换国内镜像下载源--配置国内免费registry mirror 转载 2016年09月30日 21:51:17 标签:Docker切换国内镜像 /Docker加速下载 30933 转载: ...
- Docker构建JDK 镜像
Docker构建JDK 镜像 在 Docker官网中的openJDK 镜像中,默认不是使用的北京时间,会导致启动jar应用程序时时区不对的情况,这里在 openJDK镜像的基础上,设置使用中国北京时间 ...
- docker 配置国内镜像地址
https://www.cnblogs.com/cocoajin/p/15513348.html 为docker配置国内镜像地址,用于在pull镜像下载加速 1. 创建配置文件daemon.json ...
- 使用docker构建jenkins镜像并运行容器
https://my.oschina.net/donhui/blog/470372?p={{currentPage+1}} 摘要: 使用docker构建jenkins镜像并运行容器 目录: 1.基 ...
- ubuntu下docker添加国内镜像
ubuntu下docker添加国内镜像 第一步: 更换镜像地址 到etc/docker目录中设置daemon.json文件(值得注意的是,如果是首次安装,理论上是不会有 cd /etc/docker ...
- Windows Docker 配置国内镜像源的两种方法
Windows Docker配置国内镜像源的两种方法 更新时间 2022.04.14 通过Docker-Desktop界面操作和修改daemon.json两种方法配置国内镜像源 方法一:通过Docke ...
最新文章
- 函数的相关操作——利用函数翻转任意数组||利用函数冒泡排序||利用函数判断闰年
- Groovy 设计模式 -- 保镖模式
- 如何成为SSP offer收割机|独家经验分享!
- android拍照图片如何存储空间不足,拍照时手机存储空间提示不足? OPPO云服务太贴心了...
- 94女,大厂程序员,收入50w+
- 作品拍卖价碾压毕加索,没有灵魂的 AI 灵魂画手有怎样的未来?
- 条形图设置颜色Java_java – 如何在条形图中显示每个条形的条形值?
- Altium Designer 18安装教程
- rapidminer java,rapidminer 数据导入及几个算子简单应用
- java前缀表达式二叉树课程设计_表达式构建二叉树(中缀,前缀,后缀)
- 一切成功源于积累——20140928 认识货币——加元
- 深入浅出 SSL/TLS 协议
- 年轻人,不要太浮躁,静下心来听听【钢琴曲】
- 笔记本怎么用android,电脑上如何使用Android系统
- 我分析了上万个微信红包数据,得到了这些发现(附数据集)
- python,你也和小猪佩奇一样社会了!
- 定时器 setTimeout(),setInterval() 清除定时器
- 连接ARM设备的两种方式
- 美团点评2017秋招笔试真题-安全工程师卷
- vue uni-app 裁剪图片(裁剪头像)插件vue-image-cropper