新增 CT124 私有 Registry 使用說明
推拉流程、內外網存取、刪除回收、維運;並註記無帳密驗證。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
82
CT124_Registry使用_20260622.md
Normal file
82
CT124_Registry使用_20260622.md
Normal file
@@ -0,0 +1,82 @@
|
||||
# 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` + UI `DELETE_IMAGES=true` → **可從 UI 刪 image**。
|
||||
- 資料存在 `./registry_data`(對應容器 `/var/lib/registry`)。
|
||||
|
||||
## 二、兩種存取路徑
|
||||
|
||||
**A. 對外 / 跨機(推薦):走 HTTPS,免設定**
|
||||
```
|
||||
registry.lotimmy.com/<image>
|
||||
```
|
||||
|
||||
**B. 內網直連 :5000(HTTP):用戶端需先信任這個 insecure registry**
|
||||
```jsonc
|
||||
// /etc/docker/daemon.json(CT124 本機已設好;其他機器要推才需加)
|
||||
{ "insecure-registries": ["192.168.42.124:5000"] }
|
||||
```
|
||||
改完 `systemctl restart docker`。
|
||||
|
||||
## 三、推送 image
|
||||
|
||||
```bash
|
||||
# 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
|
||||
```
|
||||
|
||||
## 四、查詢
|
||||
|
||||
```bash
|
||||
# 所有 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)只是標記,**不會真的釋放磁碟**。要回收:
|
||||
|
||||
```bash
|
||||
# 在 CT124 上
|
||||
docker exec registry registry garbage-collect /etc/docker/registry/config.yml
|
||||
# 視版本可能要重啟讓 UI 同步
|
||||
docker restart registry
|
||||
```
|
||||
|
||||
## 六、維運
|
||||
|
||||
```bash
|
||||
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`](CT124_故障復原_20260529.md) 的相依鏈);docker 掛了 `registry.lotimmy.com` 也會跟著不通,內網 `:5000` 仍可用。
|
||||
- `myfile.txt` 是舊的手記草稿,正式說明以本文為準。
|
||||
@@ -12,3 +12,4 @@ Claude Code 工作規範見 [`CLAUDE.md`](CLAUDE.md)。
|
||||
|---|---|---|
|
||||
| [CT124_故障復原_20260529.md](CT124_故障復原_20260529.md) | CT124 | 硬斷電後 Docker/Tailscale 全面當機的連鎖故障復原(38/38 容器、零資料遺失) |
|
||||
| [CT124_Jellyfin播放-11850_20260622.md](CT124_Jellyfin播放-11850_20260622.md) | CT124 | iOS 原生 AVPlayer 播 AC3-in-fMP4 報 `-11850`,關「原生播放器」即解;伺服器無誤 |
|
||||
| [CT124_Registry使用_20260622.md](CT124_Registry使用_20260622.md) | CT124 | 私有 Docker Registry(`registry.lotimmy.com` / UI)推拉、刪除回收、維運說明 |
|
||||
|
||||
Reference in New Issue
Block a user