2.7 KiB
2.7 KiB
CT124 私有 Docker Registry — 操作手冊
主機:CT124(192.168.42.124,Ubuntu 24.04 LXC) | 位置:
/opt/registry元件:registry:2(:5000)+joxit/docker-registry-ui(:8081)
一、架構
| 元件 | 容器 | Port | 對外網址(NPM 反代,HTTPS) |
|---|---|---|---|
| Registry | registry |
5000 |
https://registry.lotimmy.com |
| Web UI | registry-ui |
8081 |
https://registry-ui.lotimmy.com |
- UI 不直接打 registry,而是在 Docker 內網
NGINX_PROXY_PASS_URL=http://registry:5000取資料。 - 開了
REGISTRY_STORAGE_DELETE_ENABLED=true+ UIDELETE_IMAGES=true→ 可從 UI 刪 image。 - 資料存在
./registry_data(對應容器/var/lib/registry)。
二、兩種存取路徑
A. 對外 / 跨機(推薦):走 HTTPS,免設定
registry.lotimmy.com/<image>
B. 內網直連 :5000(HTTP):用戶端需先信任這個 insecure registry
// /etc/docker/daemon.json(CT124 本機已設好;其他機器要推才需加)
{ "insecure-registries": ["192.168.42.124:5000"] }
改完 systemctl restart docker。
三、推送 image
# 1. tag 成 registry 的命名空間
docker tag my-app registry.lotimmy.com/my-app
# 或內網:docker tag my-app 192.168.42.124:5000/my-app
# 2. push
docker push registry.lotimmy.com/my-app
# 3. 別台機器拉
docker pull registry.lotimmy.com/my-app
四、查詢
# 所有 repo
curl https://registry.lotimmy.com/v2/_catalog
# 某 repo 的 tags
curl https://registry.lotimmy.com/v2/my-app/tags/list
或直接開 UI:https://registry-ui.lotimmy.com。
(目前內容:files-to-prompt、speedtest-ookla)
五、刪 image 與回收空間
刪 tag/manifest(UI 按刪除,或 API)只是標記,不會真的釋放磁碟。要回收:
# 在 CT124 上
docker exec registry registry garbage-collect /etc/docker/registry/config.yml
# 視版本可能要重啟讓 UI 同步
docker restart registry
六、維運
cd /opt/registry
docker compose up -d # 啟動 / 套用變更(start_docker_registry.sh 也是做這件事)
docker compose logs -f registry
docker compose restart
七、注意事項
- 沒有帳號密碼驗證:registry 本身未設 htpasswd,對外安全完全靠 NPM 反代那層。內網
:5000等於對 LAN 全開,push/pull/delete 都不擋。要鎖就在 registry 加REGISTRY_AUTH=htpasswd或在 NPM 上加 basic auth。 - 對外 443 經 NPM → 依賴 docker daemon 與 NPM 容器(見
CT124_故障復原_20260529.md的相依鏈);docker 掛了registry.lotimmy.com也會跟著不通,內網:5000仍可用。 myfile.txt是舊的手記草稿,正式說明以本文為準。