Gitlab hero border pattern left svg Gitlab hero border pattern right svg

Category Direction - Container Registry

Container Registry

The GitLab Container Registry is a secure and private registry for Docker images. Built on open source software, the GitLab Container Registry is completely integrated with GitLab. Easily use your images with GitLab CI, create images specific for tags or branches and much more.

This page is maintained by the Product Manager for Package, Tim Rizzi (E-mail)

What's Next & Why

Our highest priority for the Container Registry is to lower the cost of storage on behalf of our customers and for gitlab-#434 captures all of the work we are planning to accomplish that goal.

Our immediate focus is the epic gitlab-#2272, which will seek to optimize the Container Registry garbage collection algorithm. The goal of this epic will be to unblock our customers from deleting images from storage by decreasing the amount of down/read-only time required to run garbage collection. gitlab-#26818 will allow the process to run without requiring the Container Registry to be down or in read-only mode.

gitlab-#15398 will introduce Docker tag expiration policies for all new projects and allow users to specify, using regex, which images they would expire and how frequently. This is the MVC of the larger epic, gitlab-#2270, which aims to add robust expiration and retention policies.

Maturity Plan

This category is currently at the "Viable" maturity level, and our next maturity target is Complete (see our definitions of maturity levels). Key deliverables to achieve this are:

Competitive Landscape

JFrog and Sonatype both offer support for building and deploying Docker images. JFrog offers their container registry as part of their community edition as well. Open source container registries such as Docker Hub and Red Hat's Quay offer users a single location to build, analyze and distribute their container images.

JFrog integrates with several different CI servers through dedicated plug-ins, including Jenkins and Azure DevOps, but does not yet support GitLab. However, you can still connect to your Artifactory repository from GitLab CI. Here is an example of how to deploy Maven projects to Artifactory with GitLab CI/CD.

JetBrains has recently announced support for a container registry, including cross-project search.

GitHub offers a Docker container registry as part of their package registry offering.

GitLab provides an improved experience by being the single location for the entire DevOps Lifecycle, not just a portion of it. We will provide many of the features expected of a container registry, but without the weight and complexity of a single-point solution.

Top Customer Success/Sales Issue(s)

The top Customer Success / Sales issue is to improve the visibility and management layer of the Container Registry. The goal of gitlab-ce#29639 is to improve the tracking and display of data to provide a more seamless user experience within GitLab. By completing this issue we will:

Top Customer Issue(s)

The top customer issue is gitlab-#31071 which will unblock customers from running garbage collection. gitlab-#26818 will remove the requirement for down time and unblock all of our customers (and GitLb) from running garbage collection.

There are additional top TAM issues identified which are popular amongst our customers:

Top Internal Customer Issue(s)

The top internal customer issue is tied to storage optimization. gitlab-#26818 will allow the Infrastructure team to lower the total cost of the Container Registry by implementing online garbage collection and removal of blobs.

Top Vision Item(s)

We've learned from a recent survey and subsequent user interviews, that users navigate to the Container Registry user interface for one of three reasons.

Our top vision item, gitlab-#197996 aims to add the required metadata and information to help users accomplish those tasks.