前言
Docker用起来非常爽,尤其是用于DevOps实践时。但是,当你在国内或者本地拉取镜像时,经常会碰到各种“便秘”——要么镜像拉取缓慢,要么时断时连,要么连接超时!
当我们的镜像又比较大时(比如某人在代码里面丢了个魔兽争霸的包),这简直是一个噩梦!那么如何解决这个问题?接下来我们就主要从以下几个方面来解决这个问题:
- 使用镜像加速器
- 换源
- 自己做镜像推送到国内仓库
- 自己搭建就近镜像仓库
- 最后的绝招(保密)
镜像加速器
玩网游卡都可以祭出加速器,镜像拉取通用有相关的加速器。国内的云厂商基本上都提供了镜像加速器:
Docker Hub 镜像加速器列表
镜像加速器 | 镜像加速器地址 | 专属加速器 | 其它加速 |
---|---|---|---|
Docker 中国官方镜像 | https://registry.docker-cn.com |
? | Docker Hub |
DaoCloud 镜像站 | http://f1361db2.m.daocloud.io |
可登录,系统分配 | Docker Hub |
Azure 中国镜像 | https://dockerhub.azk8s.cn |
? | Docker Hub、GCR、Quay |
科大镜像站 | https://docker.mirrors.ustc.edu.cn |
? | Docker Hub、GCR、Quay |
阿里云 | https://.mirror.aliyuncs.com |
需登录,系统分配 | Docker Hub |
七牛云 | https://reg-mirror.qiniu.com |
? | Docker Hub、GCR、Quay |
网易云 | https://hub-mirror.c.163.com |
? | Docker Hub |
腾讯云 | https://mirror.ccs.tencentyun.com |
? | Docker Hub |
如何使用镜像加速器呢?
Docker Hub 镜像加速器配置
Linux系统可以执行以下Shell:
配置了之后,可以通过“docker info”命令来查看是否生效:
如果是Windows 10呢?可以在如下图所示的界面处配置:
换源
加速器用起来非常爽,但是很多时候某些镜像就算是配置了加速器也不好使(可能和加速器的国际带宽有关系),这个时候就必须换源了。毕竟加速器不是万能的,尤其是当你的镜像比较大的时候。这时候你就要找合适的源了。
比如.NET Core 的SDK镜像,我们可以统一使用Azure中国的镜像源,如下表所示,我们看到“mcr.microsoft.com”在国内对应的代理为“mcr.azk8s.cn”:
global | proxy in China | format | example |
---|---|---|---|
dockerhub (docker.io) | dockerhub.azk8s.cn | dockerhub.azk8s.cn//: |
dockerhub.azk8s.cn/microsoft/azure-cli:2.0.61 dockerhub.azk8s.cn/library/nginx:1.15
|
gcr.io | gcr.azk8s.cn | gcr.azk8s.cn//: |
gcr.azk8s.cn/google_containers/hyperkube-amd64:v1.13.5 |
quay.io | quay.azk8s.cn | quay.azk8s.cn//: |
quay.azk8s.cn/deis/go-dev:v1.10.0 |
mcr.microsoft.com | mcr.azk8s.cn | mcr.azk8s.cn//: |
mcr.azk8s.cn/oss/kubernetes/hyperkube:v1.15.7 |
因此,我们可以使用“mcr.azk8s.cn”来替代官方提供的“mcr.microsoft.com”源:
# docker pull mcr.microsoft.com/dotnet/core/sdk:2.2-stretch docker pull mcr.azk8s.cn/dotnet/core/sdk:2.2-stretch
原文:https://blog.51cto.com/u_14180063/2811989
踩
(0)
赞
(0)
举报
评论 一句话评论(0)