Docker Registry Manager is a golang written, beego driven, web interface for interacting with multiple docker registries (one to many).
Service | Master | Develop |
---|---|---|
Status | ||
Coverage |
- Support for docker distribution registry v2 (https and http)
- Viewable image/tags stages, commands, and sizes.
- Bulk deletes of tags
- Registry activity logs
- Comparison of registry images to public Dockerhub images
- Authentication for users with admin/read only rights using TLS
- Global search
- List image shared layers
- Event timeline
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
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
- MANAGER_PORT: Port to run on inside the docker container
- MANAGER_REGISTRIES: Registries.yml file location inside the docker container
- MANAGER_LOG_LEVEL: Log level for logs (fatal, panic, error, warn, info, debug)
- MANAGER_ENABLE_HTTPS: true/false for using HTTPS. When using HTTPS the below options must be set
- MANAGER_KEY: key file location inside the docker container
- MANAGER_CERTIFICATE: Certificate location inside the docker container
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/
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
- port, p: Port to run on
- registries, r: Registrys.yml file location
- log-level, l: Log level for logs (fatal, panic, error, warn, info, debug)
- enable-https, e: true/false for using HTTPS. When using HTTPS the below options must be set
- tls-key, k: key file location inside the docker container
- tls-certificate, cert: Certificate location inside the docker container
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
- MANAGER_PORT: Port to run on inside the docker container
- MANAGER_REGISTRIES: Registries.yml file location inside the docker container
- MANAGER_LOG_LEVEL: Log level for logs (fatal, panic, error, warn, info, debug)
- MANAGER_ENABLE_HTTPS: true/false for using HTTPS. When using HTTPS the below options must be set
- MANAGER_KEY: key file location inside the docker container
- MANAGER_CERTIFICATE: Certificate location inside the docker container
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