一元网络论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 128|回复: 0

Registry 和 RegistryUI 轻量级组合分享

[复制链接]

3万

主题

3万

帖子

9万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
96158
发表于 2024-9-8 01:48:39 | 显示全部楼层 |阅读模式
## Registry UI 简易部署
Registry UI 让操作 Registry 更方便,以下是使用 k3s 部署的步骤:
**镜像地址:**
* Registry: [https://hub.docker.com/_/registry](https://hub.docker.com/_/registry)
* Registry UI: [https://hub.docker.com/r/dqzboy/docker-registry-ui](https://hub.docker.com/r/dqzboy/docker-registry-ui)
**运行配置:**
* **Registry**
    * [更多配置](https://distribution.github.io/distribution)
* **Registry UI**
    * [更多配置](https://github.com/klausmeyer/docker-registry-browser/blob/master/docs/README.md)
**Registry 部署示例:**
```yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
  ...
spec:
  ...
  template:
    metadata:
      ...
    spec:
      containers:
        - env:
            - name: REGISTRY_AUTH
              value: htpasswd
            - name: REGISTRY_AUTH_HTPASSWD_PATH
              value: /auth/htpasswd
            - name: REGISTRY_AUTH_HTPASSWD_REALM
              value: Registry Realm
            - name: DOCKER_DEBUG
              value: '1'
            - name: OTEL_TRACES_EXPORTER
              value: none
          image: 'registry:latest'
          imagePullPolicy: Always
          livenessProbe:
            ...
          name: registry
          ports:
            - containerPort: 5000
              name: registry
              protocol: TCP
          readinessProbe:
            ...
          resources:
            limits:
              cpu: '1'
              memory: 1Gi
            requests:
              cpu: 200m
              memory: 200Mi
          startupProbe:
            ...
          volumeMounts:
            - mountPath: /auth
              name: volume-r2
              subPath: auth
            - mountPath: /var/lib/registry
              name: volume-r2
              subPath: data
      dnsConfig:
        ...
      dnsPolicy: ClusterFirst
      ...
```
**Registry UI 部署示例:**
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
    ...
    spec:
      containers:
        - env:
            - name: DOCKER_REGISTRY_URL
              value: 'http://registry:5000'
            - name: SECRET_KEY_BASE
              value: eZBT6nL9bo16s24Xwifs9r
            - name: ENABLE_DELETE_IMAGES
              value: 'true'
            - name: NO_SSL_VERIFICATION
              value: 'true'
          image: 'dqzboy/docker-registry-ui:latest'
          imagePullPolicy: Always
          livenessProbe:
            ...
          name: registry-ui
          ports:
            - containerPort: 8080
              name: registry-ui
              protocol: TCP
          readinessProbe:
            ...
          resources:
            limits:
              cpu: '1'
              memory: 1Gi
            requests:
              cpu: 200m
              memory: 200Mi
          startupProbe:
            ...
      dnsConfig:
        ...
      dnsPolicy: ClusterFirst
      ...
```
**生成 Registry 仓库密码:**
* 使用 `httpd` 生成授权,写入 `htpasswd` 文件,Registry 自动读取。
* 脚本使用 `podman`,若使用 `docker` 需要修改。
```sh
#!/bin/bash
# 检查是否提供了用户名和密码
if [ "$#" -ne 2 ]; then
    echo "Usage: $0 [u] "
    exit 1
fi
# 读取用户名和密码
USERNAME=$1
PASSWORD=$2
# 清空配置
> htpasswd
# 生成 .htpasswd 文件
podman run --rm --entrypoint htpasswd httpd -Bbn "$USERNAME" "$PASSWORD" > htpasswd
# 检查 .htpasswd 文件是否成功生成
if [ $? -eq 0 ]; then
    echo "htpasswd file has been created successfully."
else
    echo "Failed to create htpasswd file."
    exit 2
fi
```
**Registry UI 效果:**
[GitHub - klausmeyer/docker-registry-browser:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|一元网络论坛

GMT+8, 2024-11-27 15:28 , Processed in 0.110236 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表