Using Gitlab's Free Docker Registry

Using Gitlab's Free Docker Registry

Daily short news for you
  • Maybe after this draft I'm working on, I will spend about a month refining some blog posts. During that time, I won't be able to write posts regularly anymore.

    Oh, but this Threads section will still be continuously updated for everyone, right? 🔥

    » Read more
  • Gemini now has the option to use the latest 2.5 Pro model from Google, everyone. Completely free too 😳

    » Read more
  • Latest developments in the JavaScript trademark lawsuit against Oracle:

    Deno v Oracle Update 3: Fighting the JavaScript Trademark

    To summarize, Oracle has filed a motion to dismiss the Deno group's request, but the fight will continue to seek justice for the community of JavaScript enthusiasts who wish to develop it.

    » Read more

The Problem

Are you using Docker in any of your projects? If so, you must have encountered the need to store and share images. The default Docker Registry limits the number of private images you can have. This means that if you have multiple projects, you have to make these images public, which compromises the privacy of your projects.

Normally, some people choose to pay for Docker to get more private images. Others prefer to set up their own registry to store internal images. Docker provides an open-source solution for creating your registry. For more details, see the Docker Registry.

If you are an individual user and can't afford a paid service or don't have resources to set up your own registry, then this article is for you. Gitlab currently offers a completely free registry, all you need is a Gitlab account.

Usage

Gitlab's registry is tied to a repository. This means that to use it, you need to create repositories first. Images will be associated with repositories, and you can store them by pushing Docker images with the same name as the repository to Gitlab.

To use Gitlab's registry, follow these steps:

Step 1: Generate an Access Token by going to Profile > Preferences > Access Tokens. Enter a name for the token and make sure to select the "read & write registry" permission.

Access Token

After successfully generating the token, save it somewhere safe for future use.

Step 2: Log in to Gitlab's registry by running the following command:

$ docker login registry.gitlab.com

Enter your Gitlab username as the username and the Access Token generated in Step 1 as the password.

Step 3: Create a repository on Gitlab. For example, let's create a repository named "system".

Step 4: Build an image and make sure to name it the same as the Gitlab repository you created. For example:

$ docker build -t gitlab.com/hoaitx/system:latest .  

Step 5: Push the image as usual:

$ docker push gitlab.com/hoaitx/system:latest

Step 6: To check if the image has been uploaded to the registry, go to the repository you created, then navigate to Deploy > Container Registry. You will see all the images along with their tags.

Container Registry

This registry can be used for pulling and pushing images just like any other registry. However, it is a private registry, so you need to log in to perform any operations.

Limits

One concern when using free services is the limitations that come with them. It's strange that there isn't any specific documentation regarding the storage limit for images in Gitlab's registry. A search in the community led to the conclusion that there are no storage limits! You can refer to the Gitlab forum for more information.

Premium
Hello

The secret stack of Blog

As a developer, are you curious about the technology secrets or the technical debts of this blog? All secrets will be revealed in the article below. What are you waiting for, click now!

As a developer, are you curious about the technology secrets or the technical debts of this blog? All secrets will be revealed in the article below. What are you waiting for, click now!

View all

Subscribe to receive new article notifications

or
* The summary newsletter is sent every 1-2 weeks, cancel anytime.

Comments (0)

Leave a comment...