使用一鍵腳本搭建自己的鏡像加速倉庫
??準(zhǔn)備工作
?? 重要:一臺網(wǎng)絡(luò)暢通的服務(wù)器。一個域名,無需國內(nèi)備案,便宜的就行(推薦xyz結(jié)尾的,首年最低7元)!通過腳本可自動實現(xiàn)HTTPS。
使用腳本前請確認(rèn)域名的[@記錄和*記錄]已經(jīng)解析到該服務(wù)器!
??快速開始
通過項目腳本部署
# CentOS
yum -y install wget curl
# ubuntu
apt -y install wget curl
bash -c "$(curl -fsSL https://raw.githubusercontent.com/kubesre/docker-registry-mirrors/main/dockerproxy/install/DockerProxy_Install.sh)"
?? 功能
- 一鍵部署Docker鏡像代理服務(wù)的功能,并且自動配置https證書.
- 支持多個鏡像倉庫的代理,包括Docker Hub、GitHub Container Registry (ghcr.io)、Quay Container Registry (quay.io)和 Kubernetes Container Registry (k8s.gcr.io)
- 自動檢查并安裝所需的依賴軟件,如Docker、Nginx等,并確保系統(tǒng)環(huán)境滿足運行要求. 自動清理注冊表上傳目錄中的那些不再被任何鏡像或清單引用的文件
- 提供了重啟服務(wù)、更新服務(wù)、更新配置和卸載服務(wù)的功能,方便用戶進行日常管理和維護
- 支持主流Linux發(fā)行版操作系統(tǒng),例如Centos、Ubuntu、Rocky、Debian、Rhel等 支持主流ARCH架構(gòu)下部署,包括linux/amd64、linux/arm64
? 教程
前綴替換的 Registry 的參考
源站 | 替換為 |
cr.l5d.io | l5d.your_domain_name |
docker.elastic.co | elastic.your_domain_name |
docker.io | docker.your_domain_name |
gcr.io | gcr.your_domain_name |
ghcr.io | ghcr.your_domain_name |
k8s.gcr.io | k8s-gcr.your_domain_name |
registry.k8s.io | k8s.your_domain_name |
mcr.microsoft.com | mcr.your_domain_name |
nvcr.io | nvcr.your_domain_name |
quay.io | quay.your_domain_name |
registry.jujucharms.com | jujucharms.your_domain_name |
使用方法
以argocd 清單文件為例:
wget https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
首先需要確定原始鏡像地址倉庫
以argocd yaml文件舉例:
grep -n image: install.yaml
21645: image: quay.io/argoproj/argocd:v2.11.0
21739: image: ghcr.io/dexidp/dex:v2.38.0
21768: image: quay.io/argoproj/argocd:v2.11.0
21850: image: quay.io/argoproj/argocd:v2.11.0
21927: image: redis:7.0.14-alpine
22162: image: quay.io/argoproj/argocd:v2.11.0
22214: image: quay.io/argoproj/argocd:v2.11.0
22531: image: quay.io/argoproj/argocd:v2.11.0
22825: image: quay.io/argoproj/argocd:v2.11.0
方案一
使用方式:
使用方式都是替換原來鏡像的前綴域名即可實現(xiàn)加速效果,比如:
#docker.io
原來地址:redis:7.0.14-alpine # 這個是官方鏡像,省略了前邊的域名
替換地址:docker.your_domain_name/redis:7.0.14-alpine
#quary.io
原來的地址:quay.io/argoproj/argocd:v2.11.0
替換地址:quay.your_domain_name/argoproj/argocd:v2.11.0
#ghcr.io
原來的地址:ghcr.io/dexidp/dex:v2.38.0
替換地址:ghcr.your_domain_name/dexidp/dex:v2.38.0
方案二
注意事項
通過這種方式只能加速docker hub的鏡像,對于其他鏡像倉庫,比如k8s.gcr.io, quay.io等,需要使用方案一替換前綴的方式進行加速。
使用方式:
還有一種方案是通過將加速地址寫入到docker配置文件當(dāng)中實現(xiàn)加速。
Ubuntu14.04、Debian7Wheezy
對于使用 upstart 的系統(tǒng)而言,編輯 /etc/default/docker 文件,在其中的 DOCKER_OPTS 中配置加速器地址:
DOCKER_OPTS="--registry-mirror=https://docker.your_domain_name"
Ubuntu16.04+、Debian8+、CentOS7
對于使用 systemd 的系統(tǒng),請在 /etc/docker/daemon.json 中寫入如下內(nèi)容(如果文件不存在請新建該文件):
{
"registry-mirrors": [
"https://docker.your_domain_name"
]
}
公益鏡像倉庫
由于許多公開鏡像站已不再可用,我們建立了一個公益鏡像倉庫供大家下載使用。然而,由于鏡像倉庫的帶寬有限,建議用戶自行搭建。以下是相關(guān)資源和使用方法:
Github倉庫地址:?https://github.com/kubesre/docker-registry-mirrors
如果覺得有幫助,請在GitHub上點個??以示鼓勵。
使用方法
k8s.gcr.io/coredns/coredns => kubesre.xyz/k8s.gcr.io/coredns/coredns
或者通過支持的鏡像倉庫前綴替換即可使用,例如:
k8s.gcr.io/coredns/coredns => k8s-gcr.kubesre.xyz/coredns/coredns
總結(jié)
以上是搭建個人Docker鏡像站的完整流程。如果有任何疑問或建議,歡迎在評論區(qū)留言交流。同時,也歡迎大家分享自己使用的鏡像站。
最后推薦一個演示的docker鏡像站:?https://github.com/kubesre/docker-registry-mirrors