docker镜像仓库hub.docker.com无法访问

文章主要内容:

  • 介绍dockerhub为什么无法访问
  • 解决办法

1 介绍dockerhub为什么无法访问

最近许多群友都询问为什么无法访问Docker镜像仓库,于是我也尝试去访问,结果果然无法访问。

大家的第一反应就是给墙了,通过ping检测红的很可怕。

实际上是DNS被污染了,导致很多用户都无法访问。至于什么是DNS污染,大家可以自行查询,这里主要讲解怎么解决dockerhub无法访问的问题。

2 解决办法

由于无法访问,导致我们运维人员和开发者使用docker镜像变得极其不方便,然而我们可以使用下面几种方法来解决这个问题。

2.1 使用魔法

(这里就不展开说了,大家懂的都懂)

2.2 使用国内镜像加速

常见的国内加速服务:

废话不多说,直接上命令

2.2.1 docker配置:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["镜像加速地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

# 示例
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://eph8xfli.mirror.aliyuncs.com"]  # 这是博主自己的阿里云镜像加速地址,大家可以更换为自己的
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

阿里云官网也有不同操作系统的操作文档,大家可以自行查阅

https://help.aliyun.com/document_detail/60750.html?spm=a2c4g.348824.0.0.742fa42dEeTNYo

2.2.2 containerd配置:

包括K8S镜像加速

vim /etc/containerd/config.toml
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]

        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          endpoint = ["https://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."gcr.io"]
          endpoint = ["https://gcr.mirrors.ustc.edu.cn"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"]
          endpoint = ["https://gcr.mirrors.ustc.edu.cn/google-containers/"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."quay.io"]
          endpoint = ["https://quay.mirrors.ustc.edu.cn"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."ghcr.io"]
          endpoint = ["https://ghcr.dockerproxy.com"]

2.3 使用博主个人镜像仓库

本镜像仓库在阿里云,主要包含K8S相关镜像。如果大家有所需求,可以联系博主增加相关镜像。

镜像每天持续同步更新,目前有80+仓库,包含新版和常用镜像版本。

2.3.1 目前有如下镜像仓库,后续会陆续增加

  docker.elastic.co:
    - elasticsearch/elasticsearch
    - kibana/kibana
    - logstash/logstash
    - beats/filebeat
    - beats/heartbeat
    - beats/packetbeat
    - beats/auditbeat
    - beats/journalbeat
    - beats/metricbeat
    - apm/apm-server
    - app-search/app-search
  quay.io:
    - coreos/flannel
    - ceph/ceph
    - cephcsi/cephcsi
    - csiaddons/k8s-sidecar
    - csiaddons/volumereplication-operator
    - prometheus/prometheus
    - prometheus/alertmanager
    - prometheus/pushgateway
    - prometheus/blackbox-exporter
    - prometheus/node-exporter
    - prometheus-operator/prometheus-config-reloader
    - prometheus-operator/prometheus-operator
    - brancz/kube-rbac-proxy
    - cilium/cilium
    - cilium/operator-generic
    - thanos/thanos
    - cilium/certgen
    - cilium/hubble-relay
    - cilium/hubble-ui-backend
    - cilium/hubble-ui
    - cilium/cilium-etcd-operator
    - cilium/operator
    - cilium/startup-script
    - cilium/clustermesh-apiserver
    - coreos/etcd
    - metallb/speaker
    - frrouting/frr
    - goharbor/nginx-photon
    - goharbor/harbor-portal
    - goharbor/harbor-core
    - goharbor/harbor-jobservice
    - goharbor/registry-photon
    - goharbor/harbor-registryctl
    - goharbor/chartmuseum-photon
    - goharbor/trivy-adapter-photon
    - goharbor/notary-server-photon
    - goharbor/notary-signer-photon
    - goharbor/harbor-db
    - goharbor/redis-photon
    - goharbor/harbor-exporter
  k8s.gcr.io:
    - dns/k8s-dns-node-cache
    - metrics-server/metrics-server
    - kube-state-metrics/kube-state-metrics
    - prometheus-adapter/prometheus-adapter
    - sig-storage/nfs-subdir-external-provisioner
    - sig-storage/csi-node-driver-registrar
    - sig-storage/csi-provisioner
    - sig-storage/csi-resizer
    - sig-storage/csi-snapshotter
    - sig-storage/csi-attacher
    - sig-storage/nfsplugin
  registry.k8s.io:
    - pause
    - etcd
    - conformance
    - kube-proxy
    - kube-apiserver
    - kube-scheduler
    - kube-controller-manager
    - coredns/coredns
    - ingress-nginx/controller
    - ingress-nginx/opentelemetry
    - ingress-nginx/controller-chroot
    - ingress-nginx/kube-webhook-certgen
    - defaultbackend-amd64
    - cpa/cluster-proportional-autoscaler
    - autoscaling/addon-resizer
  gcr.io:
    - kaniko-project/executor
    - google-samples/xtrabackup
    - kubebuilder/kube-rbac-proxy
  docker.io:
    - calico/node
    - calico/typha
    - calico/cni
    - calico/node
    - calico/kube-controllers
    - calico/pod2daemon-flexvol
    - kubesphere/openelb
    - aledbf/kube-keepalived-vip

2.3.2 使用方式

docker.elastic.co/kibana/{image_name}  ==>  registry.cn-hangzhou.aliyuncs.com/waluna/{image_name}
quay.io/csiaddons/{image_name}  ==>  registry.cn-hangzhou.aliyuncs.com/waluna/{image_name}
k8s.gcr.io/{image_name}  ==>  registry.cn-hangzhou.aliyuncs.com/waluna/{image_name}
....

2.3.3 拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/waluna/kube-scheduler:[镜像版本号]
crictl pull registry.cn-hangzhou.aliyuncs.com/waluna/kube-scheduler:[镜像版本号]

3 总结

个人感觉使用魔法最方便,但是很多同学都不会使用魔法。所以大家可以根据自己喜欢的方式去选择使用国内镜像加速(本文2.2)还是博主镜像仓库(本文2.3)。


关于我
全网可搜《阿贤Linux》
CSDN、知乎、哔哩哔哩、博客园、51CTO、掘金、思否、开源中国、阿里云、腾讯云、华为云、今日头条、百家号、GitHub、个人博客
公众号:阿贤Linux
个人博客:blog.waluna.top
https://blog.waluna.top/