Author: Mirdul Swarup
Last Updated: Mon, Oct 9, 2023Vultr Container Registry is a cloud-based solution designed to manage and store container images for applications. It simplifies the process of handling containerized applications by providing a secure and accessible repository. With Vultr Container Registry, you can easily store, distribute, and collaborate on container images, making it a valuable tool for modern software development and deployment.
A registry serves as a comprehensive catalog of available software containers, while a repository functions like a library, housing specific software containers and their various versions. Users can utilize the catalog to discover and access containers stored within repositories.
Choose the Container Registry
menu item on the Products page
Click Add Container Registry
Choose a name for the Registry, for example: testregistry1
The name should be in lowercase alphanumeric characters
The name should be globally unique within the Vultr Container Registry.
Select the location
Choose a plan
Optional: If you want your repository to be publically accessible, click Public
checkbox under the Visibility section to make the registry publically accessible. By default, the Registry is set to private visibility only accessible to authorized users
Click Add Container Registry
To retrieve the credentials for accessing the Registry click Manage Container Registry
.
Log in your registry
$ docker login https://sjc.vultrcr.com/testregistry1 -u USER_NAME -p PASSWORD
Make sure to replace USER_NAME
and PASSWORD
with the actual values provided in the overview section of the registry.
In your machine run the following command
$ docker pull hello-world:latest
The above command pulls a lightweight hello-world
container image from Docker Hub
Change the source image tag and registry
$ docker tag hello-world:latest sjc.vultrcr.com/testregistry1/hello-world:latest
The above command creates a new tag for the image you downloaded from the Docker Hub, it changes the registry to sjc.vultrcr.com
and the repository to testregistry1
Confirm the change
$ docker image list
Output
REPOSITORY TAG IMAGE ID CREATED SIZE
sjc.vultrcr.com/testregistry1/hello-world latest 9c7a54a9a43c 4 months ago 13.3kB
hello-world latest 9c7a54a9a43c 4 months ago 13.3kB
In the above output, two container images are listed which means that you can now push the hello-world
image to the registry you made on the Vultr Dashboard.
Push the container image to the Vultr Container Registry
$ docker push sjc.vultrcr.com/testregistry1/hello-world:latest
The above command pushes the hello
world image to the testregistry1
container registry you created earlier.
Output
The push refers to repository [sjc.vultrcr.com/testregistery1/hello-world]
9c7a54a9a43c: Pushed
latest: digest: sha256:7e9b6e7ba2842c91cf49f3e214d04a7a496f8214356f41d81a6e6dcad11f11e3 size: 525
Confirm the change on Vultr Dashboard, click Repositories
In the image given below, a new repository is present with the name testregistry1/hello-world
Vultr offers the option to make both public and private registries, depending on the type of registry you have created the method to pull an image from a public registry varies from pulling an image from a private registry.
Login if the registry you are pulling from is private
$ docker login https://sjc.vultrcr.com/testregistry1 -u USER_NAME -p PASSWORD
Pull an image from the registry
$ docker pull sjc.vultrcr.com/testregistry1/hello-world:latest
Output
latest: Pulling from testregistry1/hello-world
9c7a54a9a43c: Pull complete
Digest: sha256:7e9b6e7ba2842c91cf49f3e214d04a7a496f8214356f41d81a6e6dcad11f11e3
Status: Downloaded newer image for sjc.vultrcr.com/testregistry1/hello-world:latest
sjc.vultrcr.com/testregistry1/hello-world:latest
It is necessary to log in to access a private registry otherwise you will encounter the below error.
Error response from daemon: unauthorized: unauthorized to access repository: testregistry1/hello-world, action: pull: unauthorized to access repository: testregistry1/hello-world, action: pull
The command to pull an image from a public repository is the same as given in step 2 of this subsection.
The Vultr API offers several endpoints to manage container registries.
Create a new container registry.
Get information about a container registry.
Update information for a container registry.
Delete a container registry.
Create Docker credentials.
Create Docker credentials for Kubernetes.
List container registry regions.
List container registry plans.
Yes, you can use Vultr Container Registry as an alternative to DockerHub or other container registries such as Github Container Registry, Amazon Elastic Container Registry and so on.
Yes, you can host your container images and use them in your Kubernetes cluster.
Only 1 free registry is allowed per account.
Yes, you can change the visibility of a public registry to private or vice-versa in the settings menu of the registry dashboard.
Yes, you can upgrade or downgrade the plan from the settings menu of the registry dashboard.
All the registries are set to private by default.