Hide

RegistryUI Documentation

Display
Print

Using Docker

RegistryUI is designed to be deployed in a containerized environment (Docker). Windows Docker hosts running in "Linux containers" mode are not currently supported.

RegistryUI consists of 3 containers that provide all the features for a self-hosted registry:

ContainerDefault NameDescription
WebsiteregistryuiwebImplements the front-end for your self-hosted registry and acts as a proxy for the Docker Registry.
Docker RegistryregistryImplements the Docker Registry using the official Docker Registry image. This container is only accessible to the Website container.
It is possible to use your already existing Docker Registry instead. See Using An Existing Registry for more information.
DB ServerregistryuisqlProvides the data repository for RegistryUI where groups, users, projects, logs are stored and repository and tag information is cached. Either a SQL Server or PostgreSQL server can be used. This container is only accessible to the Website container.
It is possible to use your own SQL Server or PostgreSQL Server instead. See Using Your Own SQL Server or Using Your Own PostgreSQL Server for more information.

Docker-Compose

The easiest, and recommended, way to get started with RegistryUI is to use docker-compose. Once you're familiar with RegistryUI, the generated docker-compose file has all the information necessary to move to a more complex environment.

Creating the initial docker-compose file is done for you on the User > My Subscriptions page. By displaying your subscription, you can enter the necessary configuration information to create your first docker-compose file. No SSL certs are needed to run RegistryUI as localhost or even as Internet-accessible website, however we strongly recommend using https:// and the associated certificates when using RegistryUI as an Internet-accessible site.

Configuring RegistryUI

Very little information is required to get RegistryUI up and running.

URL

First, select a suitable URL for your self-hosted registry. To start out, you could use http://localhost or with a specific port, e.g., http://localhost:4000. Please see Using HTTP for additional setup information.

In order to use an Internet-accessible URL you would of course need a registered domain name with the appropriate DNS settings.

For https:// access, please see Using A Proxy & SSL for more information.

Container names

Next, select 3 container names. The default names are registryuiweb, registry and registryuisql and can be used as-is, unless they conflict with other containers you may be running.

ContainerDefault NameDescription
WebsiteregistryuiwebImplements the front-end for your self-hosted registry and acts as a proxy for the Docker Registry.
Docker RegistryregistryImplements the Docker Registry using the official Docker Registry image. This container is only accessible to the Website container.
DB ServerregistryuisqlProvides the data repository for RegistryUI where groups, users, projects, logs are stored and repository and tag information is cached. This container is only accessible to the Website container.
Host Folders

Then, you'll need to prepare 3 host folders where permanent data is stored by each container:

ContainerDefault PathDescription
Website/data/registryuiweb/Used to store permanent website data, so configuration settings are not lost when RegistryUI is updated.
Docker Registry/data/registry/Used to store all Docker Registry data. This path must be shared between the website container and the Docker Registry container. Only the Docker Registry container updates data. The website container only requires read/only access.
DB Server/data/registryuisql/Used to store groups, users, projects, logs and to cache repository and tag information.
Time Zone

Select your default time zone for all containers. This insures that the logs have the correct timestamps and that the website defaults to the correct time zone for all users. Individual users can override the time zone using the User > Settings page of your instance of RegistryUI.

Updating settings

After completing the above settings, Click Apply or Save to re-generate the displayed docker-compose file. In most cases the docker-compose file can be used as-is to start RegistryUI.

Deploying RegistryUI

Use the following commands to start RegistryUI (assuming the folder where your RegistryUI docker-compose file is located is the current folder):

$ docker-compose pull
$ docker-compose up -d

After a few seconds (a little longer the very first time, as the SQL/PostgreSQL database is initialized), you will be able to use your browser to visit the RegistryUI site using the URL you defined above.

Once started, you will be greeted with the First-Time Login page.

Upgrading

The following commands will stop all RegistryUI containers, pull the latest image and start RegistryUI again (assuming the folder where your RegistryUI docker-compose file is located is the current folder):

$ docker-compose down
$ docker-compose pull
$ docker-compose up -d

Please note that both the website AND the registry container must always be restarted at the same time, otherwise the auto-generated SSL certs used by the website and the registry container are out of sync.