snagles / docker-registry-manager

Web front end for managing multiple private docker registries
Apache License 2.0
366 stars 58 forks source link

Docker Registry Manager Go Report Card GoDoc

Docker Registry Manager is a golang written, beego driven, web interface for interacting with multiple docker registries (one to many).

Service Master Develop
Status Build Status Build Status
Coverage Coverage Status Coverage Status

Example

Current Features

  1. Support for docker distribution registry v2 (https and http)
  2. Viewable image/tags stages, commands, and sizes.
  3. Bulk deletes of tags
  4. Registry activity logs
  5. Comparison of registry images to public Dockerhub images

Planned Features

  1. Authentication for users with admin/read only rights using TLS
  2. Global search
  3. List image shared layers
  4. Event timeline

Quickstart

The below steps assume you have a docker registry currently running (with delete mode enabled (https://docs.docker.com/registry/configuration/). To add a registry to manage, add via the interface... or via the registries.yml file

Docker-Compose (Recommended)

Install compose (https://docs.docker.com/compose/install/), and then run the below commands

  git clone https://github.com/snagles/docker-registry-manager.git && cd docker-registry-manager
  vim registries.yml # add your registry
  vim docker-compose.yml # Edit application settings e.g log level, port
  docker-compose up -d
  firefox localhost:8080

Environment Options:

Helm (Kubernetes)

With a working kubernetes cluster and helm installation, run the following:

  git clone https://github.com/snagles/docker-registry-manager.git && cd docker-registry-manager
  vim helm/values.yaml # configure with your cluster specifics and add registries
  helm install --name docker-registry-manager helm/

Go

    git clone https://github.com/snagles/docker-registry-manager.git && cd docker-registry-manager
    vim registries.yml # add your registry
    cd app && go build . && ./app --port 8080 --log-level warn --registries "../registries.yml"
    firefox localhost:8080

CLI Options

Dockerfile

    vim registries.yml # add your registry
    docker run --detach --name docker-registry-manager -p 8080:8080 -e MANAGER_PORT=8080 -e MANAGER_REGISTRIES=/app/registries.yml -e MANAGER_LOG_LEVEL=warn docker-registry-manager
    firefox localhost:8080

Environment Options:

Registries.yml Example

registries:
  localRegistry:
    displayname: registry.example.com:5000
    url: http://localhost # Example https://localhost, http://remotehost.com
    port: 5000  # Example: 443, 8080, 5000
    username: exampleUser
    password: examplePassword
    refresh-rate: "5m" # Example: 60s, 5m, 1h
    skip-tls-validation: true # REQUIRED for self signed certificates
    dockerhub-integration: true # Optional - compares to dockerhub to determine if image up to date