moodis / image-mirror

Synchronize images from any public repository to ACR to speed up image pulling
Apache License 2.0
0 stars 0 forks source link

[image-mirror]master #10

Open moodis opened 1 month ago

moodis commented 1 month ago

everpeace/k8s-host-device-plugin:latest openpai/webportal:v1.8.0 openpai/rest-server:v1.8.0 openpai/database-controller:v1.8.0 openpai/pai-marketplace-webportal:v1.8.0 openpai/pai-marketplace-restserver:v1.8.0 openpai/alert-handler:v1.8.0 openpai/cert-expiration-checker:v1.8.0 openpai/internal-storage-barrier:v1.8.0 openpai/log-manager-nginx:v1.8.0 openpai/job-exporter:v1.8.0 openpai/log-manager-cleaner:v1.8.0 openpai/fluentd:v1.8.0 openpai/watchdog:v1.8.0 frameworkcontroller/frameworkcontroller:v0.9.0 hivedscheduler/hivedscheduler:v0.3.4 openpai/postgresql-init-client:v1.8.0 busybox:1.31.1 openpai/grafana:v1.8.0 openpai/pylon:v1.8.0 k8s.gcr.io/kube-proxy:v1.15.11 k8s.gcr.io/kube-apiserver:v1.15.11 k8s.gcr.io/kube-controller-manager:v1.15.11 k8s.gcr.io/kube-scheduler:v1.15.11 openpai/internal-storage-create:v1.8.0 openpai/postgresql:v1.8.0 openpai/marketplace-db:v1.8.0 nvidia/k8s-device-plugin:1.0.0-beta4 coredns/coredns:1.6.0 calico/node:v3.7.3 calico/cni:v3.7.3 calico/kube-controllers:v3.7.3 openpai/node-exporter:v1.8.0 openpai/kube-scheduler:v1.8.0 nginx:1.15 mirrorgooglecontainers/cluster-proportional-autoscaler-amd64:1.6.0 openpai/kubernetes-dashboard-amd64:v1.8.0 quay.io/coreos/etcd:v3.3.10 prom/alertmanager:v0.15.1 openpai/prometheus:v1.8.0 k8s.gcr.io/pause-amd64:3.1 k8s.gcr.io/pause:3.1

github-actions[bot] commented 1 month ago

Check the progress

镜像信息如下

典型使用场景Tips

配置镜像加速

20240606之后,应该加速的方式都逐步不可用了
获取阿里云镜像加速地址
根据提示配置镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

镜像信息部分的的两个文件保存到本地
然后愉快的使用以下脚本跑起来

联网环境拉取到本地并且tag为原始tag

适用于无法拉取外网地址或拉取外网地址缓慢

img=$(cat dockerhub-image.yml)
for i in ${img[@]}
do
    tagName=$(echo $i | awk -F "/" '{print $NF}');
    docker pull $i;
    sourceTag=$(cat images-init.yml | grep $tagName);
    docker tag $i $sourceTag;
done

联网环境拉取到本地打包

适用于内网环境需要将公网镜像打包到内网镜像仓库

img=$(cat dockerhub-image.yml)
for i in ${img[@]}
do
    tagName=$(echo $i | awk -F "/" '{print $NF}');
    filePrefix=$(echo $tagName | awk -F ":" '{print $1}');
    fileSuffix=$(echo $tagName | awk -F ":" '{print $NF}');
    fileName=$filePrefix--$fileSuffix.gz
    docker pull $i;
    mkdir localImage || echo 0
    docker save $i -o localImage/$fileName 
done
    # tar -zcf localImage.tar.gz localImage

将本地镜像包解压并且上传到私有仓库

# 将压缩好的镜像文件放在localImage目录
img=$(ls localImage)
# 本地仓库信息 LOCAL_REGISTRY 和 LOCAL_NAMESPACE 需要指定
# 如镜像local.harbor.dev/ingress-nginx/kube-webhook-certgen:v1.1.1
# LOCAL_REGISTRY则为:local.harbor.dev
# LOCAL_NAMESPACE则为:ingress-nginx
LOCAL_REGISTRY=
LOCAL_NAMESPACE=
# 首先解压镜像
for i in ${img[@]}
do
    docker load -i $i;
done

# 解压完成后,重新打tag并且上传指定仓库,需要确保需要有对应仓库的权限
img=$(cat dockerhub-image.yml)
for i in ${img[@]}
do
    tagName=$(echo $i | awk -F "/" '{print $NF}');
    specialTag=$LOCAL_REGISTRY/$LOCAL_NAMESPACE/$tagName;
    docker tag $i $specialTag;
    docker push $specialTag;
done