Contents

To-mirror

操作系统或者软件换源加速

1、操作系统

rocky

# 8 base
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
    -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.ustc.edu.cn/rocky|g' \
    -i.bak   /etc/yum.repos.d/Rocky*.repo 
   
# 8 epel
sed -e 's|^metalink=|#metalink=|g' \
    -e 's|^#baseurl=https\?://download.fedoraproject.org/pub/epel/|baseurl=https://mirrors.ustc.edu.cn/epel/|g' \
    -e 's|^#baseurl=https\?://download.example/pub/epel/|baseurl=https://mirrors.ustc.edu.cn/epel/|g' \
    -i.bak  /etc/yum.repos.d/epel*.repo
    

# 9 base
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
    -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.ustc.edu.cn/rocky|g' \
    -i.bak   /etc/yum.repos.d/rocky*.repo 
    
# 9 epel
sed -e 's|^metalink=|#metalink=|g' \
    -e 's|^#baseurl=https\?://download.fedoraproject.org/pub/epel/|baseurl=https://mirrors.ustc.edu.cn/epel/|g' \
    -e 's|^#baseurl=https\?://download.example/pub/epel/|baseurl=https://mirrors.ustc.edu.cn/epel/|g' \
    -i.bak /etc/yum.repos.d/epel*.repo

ubuntu

# http
sed -e "s@http://.*archive.ubuntu.com@http://mirrors.aliyun.com@g" \
    -e "s@http://.*security.ubuntu.com@http://mirrors.aliyun.com@g"  \
    -i.bak  -i /etc/apt/sources.list

# https
sed -e "s@http://.*archive.ubuntu.com@https://mirrors.aliyun.com@g" \
    -e "s@http://.*security.ubuntu.com@https://mirrors.aliyun.com@g"  \
    -i.bak  -i /etc/apt/sources.list

debian

# debian 12及以上
sed -i 's/\w*.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources 
sed -i "s@http://mirrors.ustc.edu.cn@https://mirrors.ustc.edu.cn@g"  /etc/apt/sources.list.d/debian.sources 

# debian 12以下
sed -i 's/\w*.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sed -i "s@http://mirrors.ustc.edu.cn@https://mirrors.ustc.edu.cn@g" /etc/apt/sources.list


# 通用版
sed -i 's/\w*.debian.org/mirrors.ustc.edu.cn/g'  /etc/apt/sources.list  || sed -i 's/\w*.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources 

alpine

# alpine 官方源
https://dl-cdn.alpinelinux.org/alpine/v3.18/main
https://dl-cdn.alpinelinux.org/alpine/v3.18/community

# ustc
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories


# edge 源
echo "https://mirrors.ustc.edu.cn/alpine/edge/main" >> /etc/apk/repositories
echo "https://mirrors.ustc.edu.cn/alpine/edge/community" >> /etc/apk/repositories
echo "https://mirrors.ustc.edu.cn/alpine/edge/testing" >> /etc/apk/repositories
# alpine 容器包
apk update --no-cache && apk add --update --no-cache coreutils ca-certificates && apk add --no-cache tzdata  coreutils

2、开发语言类

go

export GOPROXY=https://goproxy.cn,direct

# aliyun
export GOPROXY=https://mirrors.aliyun.com/goproxy/

python

export PIP_MIRROR=mirrors.aliyun.com
echo -e "[global]\nindex-url=https://${PIP_MIRROR}/pypi/simple\n[install]\ntrusted-host=${PIP_MIRROR}" >  /etc/pip.conf 

# 命令配置
pip3 install xxx -i https://mirrors.aliyun.com/pypi/simple/

npm

# 设置全局
npm config set registry https://registry.npmmirror.com

# cmd
npm install -y  --registry=https://registry.npmmirror.com

# 官方地址
https://registry.npmjs.org/

# 阿里云地址
https://registry.npmmirror.com

# 腾讯
http://mirrors.cloud.tencent.com/npm/

# 华为
https://repo.huaweicloud.com/repository/npm/

# 南京大学
https://repo.nju.edu.cn/repository/npm/

java

curl -O https://repo1.maven.org/maven2/archetype-catalog.xml

settings.xml


<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository>/home/sugar/.m2/repository</localRepository>
  <mirrors>
    <mirror>
      <id>alimaven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven</name>
      <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>archetype-catalog</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <archetypeCatalog>file:///Users/sugar/.m2/archetype-catalog.xml</archetypeCatalog>
      </properties>
    </profile>
  </profiles>
</settings>
# 下载依赖
mvn -B -f pom.xml -s /usr/share/maven/ref/settings.xml dependency:resolve

3、容器代理

配置模版

{
    "insecure-registries": [
        "repo.local.com"
    ],
    "exec-opts": [
        "native.cgroupdriver=systemd"
    ],
    "registry-mirrors": [
        "https://docker.mirrors.sjtug.sjtu.edu.cn",
        "https://docker.nju.edu.cn",
        "http://hub-mirror.c.163.com"
    ],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m",
        "max-file": "3"
    },
    "bip":"192.161.20.1/24",
    "dns": [
        "119.29.29.29",
        "223.5.5.5"
    ],
    "data-root": "/var/lib/docker",
    "features": {
        "buildkit": true
    }
}

docker registry

国内 docker registry 已暂时无法使用

gcr.io

# 上海交大
https://gcr-io.mirrors.sjtug.sjtu.edu.cn

# 南京大学
https://gcr.nju.edu.cn

# dockerproxy
https://gcr.dockerproxy.com

ghcr.io

# 南京大学
https://htghcr.nju.edu.cn

# dockerproxy
https://ghcr.dockerproxy.com

nvcr.io

# 南京大学
https://nvcr.nju.edu.cn

quay.io

# 南京大学
https://quay.nju.edu.cn

# dockerproxy
quay.dockerproxy.com

registry.k8s.io

# 南京大学
k8s.mirror.nju.edu.cn

# dockerproxy
k8s.dockerproxy.com

Microsoft Artifact Registry

mcr.dockerproxy.com

同步镜像脚本

#!/usr/bin/env bash

SRC_REPO=swr.cn-east-3.myhuaweicloud.com/serialt
DEST_REPO=docker.local.com/lib


# 获取镜像
# docker images --format "table {{.Repository}}:{{.Tag}}"


# registry.cn-hangzhou.aliyuncs.com/serialt/node:v3.22.5
# node:v3.22.5
imageList=(
golang:1.22.4-alpine
golang:1.21-alpine3.18
python:3.8-alpine
python:3.9-alpine
)

for imageName  in ${imageList[@]}
do
    imageName=`echo ${imageName} |awk -F '/' '{print $NF}'`
    docker pull ${SRC_REPO}/${imageName} 
    docker tag  ${SRC_REPO}/${imageName}  ${DEST_REPO}/${imageName}
    docker push  ${DEST_REPO}/${imageName}
    # docker rmi  ${DEST_REPO}/${imageName}
done

v2版

#!/usr/bin/env bash
imageList=(
local.com/build/alpine:3=docker.local.cc/build/alpine:3
)
#!/usr/bin/env bash


. images.sh


for imageName  in ${imageList[@]}
do
    SRC_IMAGE=`echo ${imageName} | awk -F '=' '{print $1}' `
    DST_IMAGE=`echo ${imageName} | awk -F '=' '{print $2}' `
    docker pull ${SRC_IMAGE}
    docker tag  ${SRC_IMAGE} ${DST_IMAGE}
    docker push  ${DST_IMAGE}
    # docker rmi  ${DEST_REPO}/${imageName}
done