Skip to content

Registry, CI & Deploy — Module Overview

Once you have built a Docker image it lives only on your machine. A registry is a server that stores and distributes images so that other machines — a CI runner, a cloud server, a colleague’s laptop — can pull and run exactly the same image.

The workflow is always the same three steps:

Build → Tag → Push (your machine / CI runner)
Registry
Pull → Run (deployment server)

Every step maps to a Docker command you already know (or will learn in this module):

Terminal window
docker build -t myapp:1.0 .
docker tag myapp:1.0 docker.io/acme/myapp:1.0
docker push docker.io/acme/myapp:1.0
# --- on the server ---
docker pull docker.io/acme/myapp:1.0
docker run -d docker.io/acme/myapp:1.0
RegistryAddressNotes
Docker Hubdocker.io (default)Largest public registry; free public repos
GHCRghcr.ioGitHub Container Registry; integrated with GitHub Actions
ECR*.dkr.ecr.*.amazonaws.comAWS-native; IAM auth
GAR*.pkg.devGoogle Artifact Registry
Self-hostedAny hostRun registry:2 yourself

When no registry address is specified, Docker defaults to docker.io. The snippet FROM node:22-alpine is shorthand for FROM docker.io/library/node:22-alpine.

LessonWhat you will learn
This pageRegistries, image distribution workflow, Docker Hub vs alternatives
Docker HubAccounts, repos, public vs private, docker login, rate limits
Tag, Push & PullNaming convention, docker tag, docker push, docker pull, version tags
GitHub Actions CIAutomated build & push with docker/build-push-action
Deploy basicsdocker run -d, --restart, rolling updates, secrets on the host

No credentials needed — any public image on Docker Hub can be pulled straight from Play with Docker. Try it now.

# Pull a public image from Docker Hub
docker pull docker.io/library/hello-world:latest

# Run it
docker run --rm hello-world

# Pull an nginx image and check the tag
docker pull nginx:1.27-alpine
docker images nginx
What is the main purpose of a container registry?
Which registry does Docker use by default when no registry address is specified?
What is the correct order of steps in the image distribution workflow?