差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

兩邊的前次修訂版 前次修改
下次修改
前次修改
tech:dockerhubproxy [2025/06/09 17:53] – registry:2 方案 jonathantech:dockerhubproxy [2025/06/24 12:33] (目前版本) – [registry:2 方案(適合小型服務情境)] jonathan
行 2: 行 2:
   * 因為 [[https://docs.docker.com/docker-hub/usage/|DockerHub 設定每個 IP 抓取 image 的限制]], 所以建立一個 DockerHub Proxy 可解決多台主機抓取相同 image 而不讓每台直接過去 DockerHub 抓取, 降低出現 Pull rate limit 的議題   * 因為 [[https://docs.docker.com/docker-hub/usage/|DockerHub 設定每個 IP 抓取 image 的限制]], 所以建立一個 DockerHub Proxy 可解決多台主機抓取相同 image 而不讓每台直接過去 DockerHub 抓取, 降低出現 Pull rate limit 的議題
  
-===== registry:2 方案 =====+===== registry:2 方案(適合小型服務情境) ===== 
 +  - 檔案配置結構 <cli> 
 +
 +├── cleanup.sh 
 +├── config 
 +│   └─── config.yml 
 +├── data 
 +├── .env 
 +└─── docker-compose.yml 
 +</cli> 
 +  - 產生 REGISTRY_HTTP_SECRET <cli> 
 +dockerhub-184:~# openssl rand -hex 16 
 +005311c1d394ec958d6e1966bf43b4d3 
 +</cli> 
 +  - 建立 .env 環境變數設定<cli> 
 +vi .env</cli>{{repo>https://raw.githubusercontent.com/tryweb/docker-compose/refs/heads/main/docker-registry/env.example}} 
 +  - 建立 cleanup.sh <cli> 
 +vi cleanup.sh</cli>{{repo>https://raw.githubusercontent.com/tryweb/docker-compose/refs/heads/main/docker-registry/cleanup.sh}}
   - 建立 config.yml <cli>   - 建立 config.yml <cli>
 mkdir -p config mkdir -p config
-vi config/config.yml</cli><file> +vi config/config.yml</cli>{{repo>https://raw.githubusercontent.com/tryweb/docker-compose/refs/heads/main/docker-registry/config/config.yml}}
-version0.+
-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,可選] +
-</file>+
   - 建立 image 存放路徑 <cli>   - 建立 image 存放路徑 <cli>
 mkdir -p data mkdir -p data
 </cli> </cli>
-  - 啟動服務 <cli> +  - 建立 docker-compose.yml <cli> 
-docker run -d \ +vi docker-compose.yml</cli>{{repo>https://raw.githubusercontent.com/tryweb/docker-compose/refs/heads/main/docker-registry/docker-compose.yml}} 
-  -p 5000:5000 \ +  - 啟動服務與查看 log <cli> 
-  --restart=always \ +docker compose up -
-  --name docker-registry-proxy \ +docker compose logs -f
-  -v $(pwd)/config:/etc/docker/registry \ +
-  -v $(pwd)/data:/var/lib/registry +
-  registry:+
-</cli> +
-  - 查看 log <cli> +
-docker logs docker-registry-proxy+
 </cli> </cli>
   - 測試服務 <cli>   - 測試服務 <cli>
行 50: 行 43:
 X-Content-Type-Options: nosniff X-Content-Type-Options: nosniff
 Date: Mon, 09 Jun 2025 09:43:05 GMT Date: Mon, 09 Jun 2025 09:43:05 GMT
 +</cli>
 +  - 其他測試服務命令 <cli>
 +# 查看目前緩存的 repositories
 +curl -X GET http://localhost:5000/v2/_catalog
 +
 +# 手動執行清理腳本
 +docker exec registry_cleaner /cleanup.sh
 </cli> </cli>
  
行 58: 行 58:
   "registry-mirrors": [   "registry-mirrors": [
     "http://192.168.11.184:5000"     "http://192.168.11.184:5000"
 +  ],
 +  "insecure-registries": [
 +    "192.168.11.184:5000"
   ]   ]
 } }
行 207: 行 210:
 </cli>++ </cli>++
  
 +===== Harbor 方案(適合大型服務情境) ===== 
 +  * 先參考 [[harbor_docker]] 建立 Harbor 服務 
 +  * 在 系統管理 -> Registry管理 -> 新增端點 Exp. dockerhub  
 +    * 提供者 : Docker Hub 
 +    * 端點名稱 : dockerhub 
 +    * 端點 URL : https://hub.docker.com (選 Docker Hub 會自動顯示這 URL) 
 +  * 點 **測試連線** 如果正常就可以 **儲存** \\ {{:tech:螢幕擷取畫面_2025-06-09_181403.png|}}
  
 ===== 參考網址 ===== ===== 參考網址 =====
  • tech/dockerhubproxy.1749462827.txt.gz
  • 上一次變更: 2025/06/09 17:53
  • jonathan