Skip to main content
Docker Concepts After installing Docker (see Install), get the skeleton concepts and the two interfaces straight first, so the commands, settings, and Compose that follow do not feel fragmented.

The Desktop app and the CLI are one engine

The Docker Desktop GUI and the docker command in your terminal drive the same Docker engine, just two interfaces:
InterfaceBest for
Docker Desktop GUIQuickly checking container state, changing settings, toggling services, viewing resource usage
docker CLIReproducible, scriptable, composable operations
Under the WSL 2 backend, running docker from the WSL Linux terminal is best: the filesystem and engine both live on the Linux side, with one less cross-OS layer (expanded in Where data lives and Performance settings).

The three core concepts

Image, Container, and Volume are Docker’s skeleton; get their purpose straight:
A read-only template that packs in the app’s code, runtime, libraries, and config.
  • Think of it as an install disc: it does not run by itself, it is the blueprint you open containers from.
  • Built layer by layer by a Dockerfile, or pulled from Docker Hub.
  • An image is a stack of read-only layers; identical layers are shared across images, saving disk and speeding downloads.
In one line: a Dockerfile builds an Image, you open a Container from the image to run it, and data you need to keep is mounted to a Volume.

Next