文章目錄
使用 Nexus Repository 建立 Docker Registry
之前筆記 使用 Docker 建立 Nexus3 的 Image Registry 紀錄到如何使用 Sonatype Nexus Repository 來建立 Docker Image Registry,最近遇到幾次需要使用 Docker Registry 的需求,但之前筆記 使用 Docker 建立 Nexus3 的 Image Registry 卻因為不同因素派不上用場,所以今天就來針對最近遇到的問題來補充如何使用 Sonatype Nexus Repository 來建立 Docker Registry。
基本環境設定
- macOS Sonoma 14.6.1 (Apple M2 Pro)
- OrbStack 1.7.2 (17389)
container images
- sonatype/nexus3:3.72.0
使用 docker-compose 來建立 Nexus Repository
- 8081 是 ui port
- 8082 是 connector for docker port
設定方式與使用方式
首次登入並完成設定
首次登入 Nexus Repository 需要從 container 中取得 password,並修改密碼
docker exec -it nexus cat /nexus-data/admin.password
修改密碼並完成設定
建立 Docker Registry
Server administration and configuration
–>Repositories
–>Create repository
Select Recipe –>
docker (hosted)
Create Repository: docker (hosted)
Name
是必填HTTP
connector port 是為了方便 docker client 使用,也會影響之後 image 的完整名稱 (設定需與 docker compose 中除了 8081 之外的 port 一致)
允許匿名 pull 時需設定 Docker Bearer Token Realm:
Security
–>Realms
–> 加入Docker Bearer Token Realm
未設定錯誤:Error response from daemon: unauthorized
實際使用
port 使用 connector port,不是 8081
登入:
docker login localhost:8082
image 名稱模版:
{host}:{port}/{image name}:{tag}
image 名稱範例:
localhost:8082/redis:latest
心得
Sonatype Nexus Repository 從 3.66.0 開始加入了 threshold 的機制,用量超過 20,000 requests/每天
或是 100,000 components
會收到警告,依我自己的經驗 nexus 會暫停提供服務,重啟後可以緩解,但畢竟 threshold 已經頂到了,還是會持續出現問題,所以建議在使用前要先評估用量,避免出現問題。
參考資訊
文章作者 Yowko Tsai
上次更新 2024-09-18
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。