這是本文件的舊版!
建立與設定 DockerHub Proxy
- 因為 DockerHub 設定每個 IP 抓取 image 的限制, 所以建立一個 DockerHub Proxy 可解決多台主機抓取相同 image 而不讓每台直接過去 DockerHub 抓取, 降低出現 Pull rate limit 的議題
registry:2 方案
- 建立 config.yml
mkdir -p config vi config/config.yml
version: 0.1 log: fields: service: registry storage: cache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registry http: addr: :5000 headers: X-Content-Type-Options: [nosniff] proxy: remoteurl: https://registry-1.docker.io #username: [您的 Docker Hub 使用者名稱,可選] #password: [您的 Docker Hub 密碼或 Access Token,可選] - 建立 image 存放路徑
mkdir -p data - 啟動服務
docker run -d \ -p 5000:5000 \ --restart=always \ --name docker-registry-proxy \ -v $(pwd)/config:/etc/docker/registry \ -v $(pwd)/data:/var/lib/registry \ registry:2
- 查看 log
docker logs docker-registry-proxy - 測試服務
curl -I http://localhost:5000/v2/- 應該可以看到類似以下的訊息
dockerhub-184:~# curl -I http://localhost:5000/v2/ HTTP/1.1 200 OK Content-Length: 2 Content-Type: application/json; charset=utf-8 Docker-Distribution-Api-Version: registry/2.0 X-Content-Type-Options: nosniff Date: Mon, 09 Jun 2025 09:43:05 GMT
其他主機設定 /etc/docker/daemon.json
- Exp. registry:2 服務安裝在 192.168.11.184
- 編輯 /etc/docker/daemon.json
{ "registry-mirrors": [ "http://192.168.11.184:5000" ] } - 重啟 docker
service docker restart - 確認設定是否生效
docker info - 執行 docker pull 驗證
docker pull alpine - 如果成功 pull image, 可以回到 registry:2 服務主機 Exp. 192.168.11.184 查看 data/docker/registry/v2/repositories/ 內是否出現 alpine