Difficulty: intermediate
Estimated Time: 60-75 minutes

BoxBoat Logo

Docker Registries

Docker Registries are used to store your images. The most basic ones will do exactly that. There are more advanced registries that provide additional features, including:

  1. Users, groups, and organization
  2. Caching
  3. Mirroring
  4. CVE Scanning
  5. Signatures
  6. Image layer inspection
  7. SSO
  8. RBAC
  9. Garbage collection

Please email feedback to: [email protected]

Every organization that uses Docker or Kubernetes will need their own registry. If you are a heavy cloud user, something like ECR or ACR makes sense. However, if you want control of your own software, then DTR or Harbor makes sense.

Docker Registries

Step 1 of 3

Basic Operations

Docker Registries Step #1 - Working with Registries

Throughout the whole course, we have been working with registries. Every time we execute docker image pull, docker container run, or even docker stack deploy, our local Docker Daemon is talking to a registry.

When a registry does not have a fully qualified URL, it references Docker Hub. For example:

nginx

boxboat/mario-demo

Both of these images are from Docker Hub. We can visit the website to search for them (and more). Or, we can use the command line:

docker search redis

$ docker search redis
NAME                              DESCRIPTION                                     STARS  OFFICIAL  AUTOMATED
redis                             Redis is an open source key-value store that…   6731   [OK]
bitnami/redis                     Bitnami Redis Docker Image                      110              [OK]
sameersbn/redis                                                                   76               [OK]
grokzen/redis-cluster             Redis cluster 3.0, 3.2, 4.0 & 5.0               44
hypriot/rpi-redis                 Raspberry Pi compatible redis image             34
kubeguide/redis-master            redis-master with "Hello World!"                28
rediscommander/redis-commander    Alpine image for redis-commander - Redis man…   22               [OK]
kubeguide/guestbook-redis-slave   Guestbook redis slave                           22
redislabs/redis                   Clustered in-memory database engine compatib…   19
redislabs/redisearch              Redis With the RedisSearch module pre-loaded…   15
arm32v7/redis                     Redis is an open source key-value store that…   14
oliver006/redis_exporter           Prometheus Exporter for Redis Metrics. Supp…   10
webhippie/redis                   Docker images for Redis                         10               [OK]
insready/redis-stat               Docker image for the real-time Redis monitor…   7                [OK]
s7anley/redis-sentinel-docker     Redis Sentinel                                  7                [OK]
rtoma/logspout-redis-logstash     Logspout including Redis adapter for sending…   5
arm64v8/redis                     Redis is an open source key-value store that…   5
redislabs/redisgraph              A graph database module for Redis               4                [OK]
centos/redis-32-centos7           Redis in-memory data structure store, used a…   4
frodenas/redis                    A Docker Image for Redis                        2                [OK]
circleci/redis                    CircleCI images for Redis                       2                [OK]
wodby/redis                       Redis container image with orchestration        2                [OK]
tiredofit/redis                   Redis Server w/ Zabbix monitoring and S6 Ove…   1                [OK]
cflondonservices/redis            Docker image for running redis                  0
xetamus/redis-resource            forked redis-resource                           0                [OK]

These are all of the images currently on Docker Hub that match 'redis'. We can see that the first one is an official image, and most of the others are automated. We can view these images on Docker Hub's website.

Docker Hub

We can also login to Docker Hub (or any other registry) with docker login.

E.g. docker login -u <username> -p <password, or forego CLI arguments and type them afterwards.

Once you are logged in, if you tag an image with your username and push it (e.g. davidwiden/redis), it will be stored in Docker Hub.

You can also tag it with your organization's name (e.g. boxboat/mario-demo) to store the images there.