Multi-stage Build : Is a feature, since Docker 17.05 or higher, that helps to reduce the size of the final
images. For example, a large base image, containing the SDK can be used for compiling and
publishing and then a small runtime-only base image can be used to host the application.
Repository (repo) : A collection of related Docker images, labeled with a tag that indicates the image
version. Some repos contain multiple variants of a specific image, such as an image containing SDKs
(heavier), an image containing only runtimes (lighter), etc. Those variants can be marked with tags. A
single repo can contain platform variants, such as a Linux image and a Windows image.
Registry : A service that provides access to repositories. The default registry for most public images is
Docker Hub
(owned by Docker as an organization). A registry usually contains repositories from
multiple teams. Companies often have private registries to store and manage images they’ve created.
Azure Container Registry is another example.
Multi-arch image : For multi-architecture (or
multi-platform
), it’s a Docker feature that simplifies the
selection of the appropriate image, according to the platform where Docker is running. For example,
when a Dockerfile requests a base image
FROM mcr.microsoft.com/dotnet/sdk:7.0 from the
registry, it actually gets
7.0-nanoserver-ltsc2022 ,
7.0-nanoserver-1809 or
7.0-bullseye-slim ,
depending on the operating system and version where Docker is running.
Docker Hub : A public registry to upload images and work with them. Docker Hub provides Docker
image hosting, public or private registries, build triggers and web hooks, and integration with GitHub
and Bitbucket.
Azure Container Registry : A public resource for working with Docker images and its components in
Azure. This provides a registry that’s close to your deployments in Azure and that gives you control
over access, making it possible to use your Azure Active Directory groups and permissions.