loading...
Cover image for Dockerhub and Registry Server

Dockerhub and Registry Server

soutoigor profile image Igor Souto ・2 min read

Dockerhub is the Docker's website for repositories of images, very similar to Github, where we create repositories of code, that other people can use. On Docker, we host our Docker images, private ou public, of enterprises or not. And then, other people can use that image that you've created.

Accessing the Dockerhub's website, we can create our account and start using it.

Some commands

LOGIN

With the command docker login, you can sign in your Dockerhub's account. If you want to sign in another Registry instead of Dockerhub, just put the URL after like docker login <URL> .

PUSH

With the command docker push, it's possible to push a local image to Dockerhub.

The image's name must contain:

Your Dockerhub's username + the name that you want to give for the image + the version:

docker push username/webserver:1.0

To change the docker's name, use the command:

docker tag username/serverweb:2.0

PULL

To download the image from Dockerhub to the local machine, use:

docker pull image-name

The download will be made, and when finish, run using like:

docker run -ti webserver

Registry

A registry is like a "personal Dockerhub", for you or for your company. You can run in your local machine or any server, setting your own DNS, access control for users and etc.

It's possible to add web interfaces, so you can easily view your registry, in Dockerhub has many examples of templates to install.

Creating a local registry

For building your local registry, in order not to need Dockerhub, either for your self or your company, we do the following:

docker run -d -p 5000:5000 --restart=always --name registry registry:2

This command is linking our port 5000 of host docker (local machine) and the image.

We are telling Docker that if something happens to our container and he dies, it will be automatically restarted. We're giving our container the name "registry" and using the image "registry:2" from Dockerhub.

Pushing an image to the local registry

For pushing images to the local registry, just renaming an image, replacing the username for the registry's URL, that in our case it would be like:

 docker tag <image-id> [localhost:5000/webserver:](http://localhost:5000/webserver:1.0`)1.0

But it could be a server DNS etc.

We use docker push for pushing the image, as we did for pushing to Dockerhub, and docker pull if we want to download an image from the registry.

For verifying the images in your registry, run: (if is a DNS you would change it and either the port.

curl localhost:5000/v2/_catalog

Conclusion

Dockerhub is a very interesting alternative if you or a company wants to share images, whether public or private. And for those who want to have a more private alternative, with their own rules and settings, the Registry is a great alternative, being very customizable and having a lot of content available to assist those who want to create one.

Discussion

pic
Editor guide