跳转至

镜像仓库+UI页面

Docker Registry UI

带UI的Registry镜像是第三方基于官方镜像制作出来,会涉及两个镜像,一个是仓库镜像一个UI镜像,建议使用docker-compos编排

比较热门的UI镜像是 joxit/docker-registry-ui,可以去hub.docker.com 查阅

准备工作

创建目录,配置认证文件

Bash
# 创建目录
$ mkdir -p /opt/registry/{data,auth,conf} && cd /opt/registry
# data 存放数据目录,容器/var/lib/registry
# auth 账户密码认证,容器/etc/registry/auth/passwd
# conf 配置文件,容器/etc/distribution/config.yml

# 使用htpasswd工具,生成基于http基本认证密码文件
$ yum install httpd-tools    # 基于rpm 管理安装工具包
$ apt install apache2-utils    # 基于apt 管理安装包
# 生成密码文件
$ htpasswd -Bbn admin admin123456 > /opt/registry/auth/passwd
# -B 强制密码加密
# -b 命令行密码
# -n 不更新加密文件
$ cat auth/passwd
admin:$2y$05$ik.3rAt3ZFRzclXVADctAeZ.YO/LXuNBKJHXQHdzkPVfzdB853nVC

仓库配置文件

编写config.yml 文件,参数具体示意参考官网

这里有个参考

vim /opt/registry/conf/config.yml

YAML
version: 0.1
log:
  level: info
  fields:
    service: registry
    environment: development
storage:
  delete:
    enabled: true
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
    maxthreads: 100
  tag:
    concurrencylimit: 5
http:
  addr: :5000
  debug:
    addr: :5001
    prometheus:
      enabled: true
      path: /metrics
auth:
  htpasswd:
    realm: basic-realm
    path: /etc/registry/auth/passwd
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3

docker-compose.yml

YAML
services:
  registry-server:
    image: registry:3
    restart: always
    volumes:
      - /opt/registry/data:/var/lib/registry
      - /opt/registry/auth:/etc/registry/auth
      - /opt/registry/conf/config.yml:/etc/distribution/config.yml
    environment:
      - OTEL_TRACES_EXPORTER=none
    container_name: registry-server
  registry-ui:
    image: joxit/docker-registry-ui:2.5.7
    restart: always
    ports:
      - 80:80
    environment:
      - SINGLE_REGISTRY=true
      - REGISTRY_TITLE=Docker Registry UI
      - DELETE_IMAGES=true
      - SHOW_CONTENT_DIGEST=true
      - NGINX_PROXY_PASS_URL=http://registry-server:5000
      - SHOW_CATALOG_NB_TAGS=true
      - CATALOG_MIN_BRANCHES=1
      - CATALOG_MAX_BRANCHES=1
      - TAGLIST_PAGE_SIZE=100
      - REGISTRY_SECURED=false
      - CATALOG_ELEMENTS_LIMIT=1000
    container_name: registry-ui
    depends_on:
      - registry-server

启动容器

Bash
1
2
3
docker compose up -d
docker compose ps
docker compose logs

浏览器访问

http://172.16.1.28

admin admin123456