常用镜像仓库
DockerHub镜像仓库
Google 镜像仓库
CoreOS 镜像仓库
Elastic 镜像仓库
RedHat 镜像仓库
阿里云镜像仓库
华为云镜像仓库
国内可以访问的镜像源
部分国外镜像仓库无法访问,但国内有对应镜像源,可以从以下镜像源拉取到本地然后重新打标签即可:
阿里云镜像仓库
可以拉取 k8s.gcr.io 镜像
示例:
1
2
3
| docker pull k8s.gcr.io/pause:3.2
# 改为
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
|
Docker Hub 镜像仓库
可以拉取 k8s.gcr.io 镜像
示例:
1
2
3
4
5
| docker pull k8s.gcr.io/pause:3.1
docker pull k8s.gcr.io/kube-apiserver:v1.17.3
# 改为
docker pull willdockerhub/pause:3.1
docker pull willdockerhub/kube-apiserver:v1.17.3
|
七牛云镜像仓库
可以拉取 k8s.gcr.io 镜像
示例:
1
2
3
| docker pull quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0
# 改为
docker pull quay-mirror.qiniu.com/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0
|
Docker Hub 搜索镜像
很多国外镜像已经有热心网友上传到了 Docker Hub,例如 gcr.io/kubernetes-helm/tiller:v2.16.5
这个镜像,直接搜索关键字,找到排序靠前的然后在 Docker Hub 确认并拉取即可。
示例:
1
2
3
4
5
| # docker search tiller
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
jessestuart/tiller Nightly multi-architecture (amd64, arm64, ar 19 [OK]
sapcc/tiller Mirror of https://gcr.io/kubernetes-helm/til 9
ist0ne/tiller https://gcr.io/kubernetes-helm/tiller ....
|
gcr.io镜像
根据开源项目anjia0532/gcr.io_mirror,作者将gcr.io相关镜像pull下来,然后push到docker官方仓库,相关转换语法如下:
1
2
3
4
| gcr.io/namespace/image_name:image_tag
# 等价于
anjia0532/namespace.image_name:image_tag# 特别的
k8s.gcr.io/{image}/{tag} <==> gcr.io/google-containers/{image}/{tag} <==> anjia0532/google-containers.{image}/{tag}
|
- 方法一
K8S的exapmle里的yaml默认是k8s.gcr.io的镜像,为了方便运行我们可以预先拉取相关镜像:
1
2
3
4
5
| # vim pull-google.sh
image=$1echo $1img=`echo $image | sed 's/k8s\.gcr\.io/anjia0532\/google-containers/g;s/gcr\.io/anjia0532/g;s/\//\./g;s/ /\n/g;s/_/-/g;s/anjia0532\./anjia0532\//g' | uniq | awk '{print ""$1""}'`echo "docker pull $img"docker pull $imgecho "docker tag $img $image"docker tag $img $image
# chmod +x pull-google.sh && cp pull-google.sh /usr/local/bin/pull-google-container
|
就可以愉快的使用pull-google-container 命令了
1
2
3
4
5
6
7
| # pull-google-container gcr.io/google-samples/gb-frontend:v4
gcr.io/google-samples/gb-frontend:v4
docker pull anjia0532/google-samples.gb-frontend:v4
v4: Pulling from anjia0532/google-samples.gb-frontend
Digest: sha256:aaa5b327ef3b4cb705513ab674fa40df66981616950c7de4912a621f9ee03dd4
Status: Image is up to date for anjia0532/google-samples.gb-frontend:v4
docker tag anjia0532/google-samples.gb-frontend:v4 gcr.io/google-samples/gb-frontend:v4
|
- 方法二
除了预先拉取镜像,我们还可以将k8s.gcr.io 替换为可执行镜像
为了方便替换,我们编写一个repair_yaml 脚本:
1
2
3
4
5
6
| vim /usr/local/bin/repair_yaml
cp $1 "$1.bak"cat $1.bak | sed 's/k8s\.gcr\.io\/\(.*\)\//anjia0532\/google-containers.\1./g;s/gcr\.io\/\(.*\)\//anjia0532\/\1./g;s/google_/google-/g;' > $1rm -f "$1.bak"
# chmod +x /usr/local/bin/repair_yaml
# repair_yaml frontend-deployment.yaml
# cat frontend-deployment.yaml
|
DockerHub镜像国内加速
阿里云镜像加速
1
2
3
4
5
| sudo mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://uyah70su.mirror.aliyuncs.com"]
}
EOF
|
DaoCloud DockerHub镜像加速
1
| curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
|
西北农林大学DockerHub镜像加速
1
2
3
4
5
| sudo mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://dockerhub.mirrors.nwafu.edu.cn/"]
}
EOF
|
华为云DockerHub镜像加速
1
2
3
4
5
| sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<- 'EOF'
{"registry-mirrors": ["https://7bafc985f90c43b887a96c2b846cf984.mirror.swr.myhuaweicloud.com"]
}
EOF
|
然后重新启动 Docker 服务:
1
| sudo systemctl daemon-reload && sudo systemctl restart docker
|
验证加速器是否生效
执行 docker info
命令,如果从结果中看到了如下内容,说明配置成功。
1
2
| $ docker info | grep Mirrors -A1
Registry Mirrors:https://uyah70su.mirror.aliyuncs.com/
|
验证镜像拉取速度
1
| $ time docker pull centos
|