- Lab
-
Libraries: If you want this lab, consider one of these libraries.
- Cloud

Building a Private Docker Registry
Docker registries provide a powerful way to manage and distribute your Docker images. Docker offers a free registry at Docker Hub, but in many scenarios, you may want greater control of your images, not to mention that it is not free to have more than one private repository on Docker Hub. Fortunately, you can build and manage your own private registries, allowing you full control over where your images are housed and how they can be accessed. In this lab, you will have the opportunity to work with a private registry. You will build your own private registry, and you will have a chance to practice some advanced setup to ensure that your private registry is secure. After completing this lab, you will know how to set up a simple but secure private Docker registry.

Lab Info
Table of Contents
-
Challenge
Set up the private registry.
- Create an
htpasswd
file containing the login credentials for the initial account. - Create a self-signed certificate for the registry. For the common name, enter the hostname of the registry server, which is
ip-10-0-1-101
. - Create a container to run the registry.
- Once the registry starts up, verify that it is responsive. It's OK if this command returns nothing, just make sure it does not fail.
- Create an
-
Challenge
Test the registry from the Docker workstation server.
Note: A private Docker registry is running on the Docker registry server using version
2.7
of the registry image.- Get the public hostname from the registry server. It should be
ip-10-0-1-101
. - Add the registry's public self-signed certificate to
/etc/docker/certs.d
. Thescp
command is copying the file from the registry server to the workstation. The password is the normalcloud_user
password provided by the lab. - Log in to the private registry from the workstation. The credentials should be username
docker
and passwordd0ck3rrU73z
. - Test the registry by pushing an image to it. You can pull any image from the Docker hub and tag it appropriately to push it to the registry as a test image.
- Verify image pulling by deleting the image locally and re-pulling it from the private repository.
- Get the public hostname from the registry server. It should be
About the author
Real skill practice before real-world application
Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.
Learn by doing
Engage hands-on with the tools and technologies you’re learning. You pick the skill, we provide the credentials and environment.
Follow your guide
All labs have detailed instructions and objectives, guiding you through the learning process and ensuring you understand every step.
Turn time into mastery
On average, you retain 75% more of your learning if you take time to practice. Hands-on labs set you up for success to make those skills stick.