App Notes / 2026 ・ No.01

A Guide to Docker Desktop

What it does and how it works, the screens step by step, choosing among similar apps, and the basics worth knowing

Published

Docker Desktop's container detail screen. An nginx container named kiji-web is running, and the Logs tab lists nginx's start-up messages
An nginx container running in Docker Desktop. This article walks through every step it takes to reach this screen. (Captured on the author's Mac with Docker Desktop 4.89.0, 17 October 2026.)

This blog has a new Software category. Each post picks one app we use a lot
and shows how to use it, screen by screen. First up is a developer staple: Docker Desktop.
Every screenshot here was taken while actually operating it on the author's Mac, with ①②③ marking where to click.
We go through what it does and how, the core vocabulary, each screen, how it compares with similar apps, and tips for using it well.

1

What Docker Desktop is

Docker Desktop is an all-in-one app for using Docker on a Mac, Windows or Linux computer. Made by Docker, Inc., it installs everything in one go: the engine that runs containers, the command-line tools, and a graphical dashboard.

A "container" is a box holding an app together with everything it needs to run: OS components, libraries, configuration. Because the whole box moves as one, it runs the same on anyone's laptop or on a server. The idea of containers itself is covered in the Dev Guide post Docker from the Basics to Practice. This article is about the app that brings Docker to your own computer.

What is inside Docker Desktop

Your Mac or Windows PC Dashboard This article Command line docker docker compose docker buildx kubectl A Linux virtual machine Docker Engine dockerd containerd Containers Kubernetes Optional API Extras (later chapters) Scout CVE checks Extensions Add-ons Gordon AI helper Model Runner AI models MCP Toolkit AI tools

A button pressed on screen and a command typed in a terminal both end up at the same Docker Engine. Either way, the result is the same

  • Docker Engine — the part that actually runs containers; the same engine used on Linux servers
  • Command-line tools — docker, docker compose for running several containers together, docker buildx for building images, kubectl for Kubernetes, and more
  • Dashboard — the screens shown in this article: lists of containers, images and volumes, the actions on them, logs, and settings
  • Extras — single-node Kubernetes, Docker Scout for vulnerability checks, extensions, the AI assistant Gordon, Model Runner for running AI models, and others

Its predecessors were "Docker for Mac" and "Docker for Windows", which appeared in 2016. Before then, using Docker on a Mac or Windows PC meant setting up a virtual machine yourself. These apps made it work just by installing; they were later brought together under the name Docker Desktop, and a Linux version followed.

CORE

Docker Desktop's job is to turn your computer into a development environment where containers run straight away, and to make the state of containers, otherwise hard to see, visible on screen. It is not meant for running production servers.

2

How it works: a small Linux behind the scenes

Containers rely on features of the Linux kernel (the core of the OS). The macOS and Windows kernels lack them, so Docker Desktop runs a small Linux virtual machine in the background and runs Docker Engine and your containers inside it.

How it works on each OS

Mac Apple Virt. Default, stable Docker VMM Beta, Apple silicon QEMU etc. Legacy Settings > General Windows WSL 2 Recommended Hyper-V Pro and up Win containers Switchable WSL 2 runs Linux Linux Docker Desktop Uses a VM Docker Engine Install directly (no VM) For servers Native containers Containers are a Linux feature; Macs and PCs run a hidden Linux That is why you can cap its memory, CPUs and disk (chapter 9)

On a Mac, the type of virtual machine is chosen in Settings > General. Docker VMM is a newer option aimed at speed and was in beta at the time of writing

Knowing this makes several things fall into place.

  • It uses a lot of memory and disk — a whole Linux machine runs behind it. You can set limits (chapter 9)
  • Reading and writing your own folders can be slow — files are passed between your computer and the virtual machine (chapter 13)
  • You cannot reach a container's IP address directly — containers live on a network inside the virtual machine. To use them from outside, publish a port (chapter 3)
  • Intel images are slow on Apple silicon Macs — the virtual machine runs ARM Linux, so images built for Intel (amd64) have to run under emulation
3

The vocabulary you need

Before touching the screens, let us pin down Docker's vocabulary. Once these words are clear, where things sit on screen becomes obvious too.

Images, containers, ports and volumes

Registry e.g. Docker Hub Image Read-only layers pull push Writable layer Container 1 Writable layer Container 2 run Browser 8080 → 80 Port mapping Volume Data that stays Image The template: app plus its environment. Read-only Container A running copy; stays until you delete it Volume Storage that outlives the container Port Host port forwarded to a container port
TermMeaningThink of it as
ImageA read-only bundle of an app and the environment it runs inA recipe plus its ingredients
TagThe version name of an image: the "stable-alpine" in nginx:stable-alpine. Leave it out and you get latestThe recipe's edition
RegistryWhere images are stored. Docker Hub is the best known; companies may run their ownA library of recipes
ContainerA running (or stopped) instance made from an image. One image can make any numberThe dish you cooked
LayerImages are stacks of layers. Shared layers are reused, so the second image is faster and smallerShared prep work
Port publishingConnecting a number on your computer (say 8080) to one in the container (say 80): -p 8080:80The sign at the shop door
VolumeStorage managed by Docker that survives when the container is deletedThe fridge
Bind mountShowing a folder on your computer directly to the containerLending a shelf from home
NetworkA virtual LAN linking containers. On the same network they can call each other by nameThe kitchen intercom
DockerfileA text file describing how to build an imageThe recipe itself
ComposeDescribing a set of containers in compose.yaml and running them togetherThe menu for a set course

The most important instinct is that containers are disposable. Anything written inside a container disappears when the container is deleted. Data you want to keep goes in a volume or a bind mount. Chapter 8 returns to this distinction.

4

Getting it, and what it costs

Download Docker Desktop from the official site (docker.com). For the Mac there are separate downloads for Apple silicon and Intel.

OSMain requirements (official docs at the time of writing)
MacThe current macOS and the two previous releases; 4 GB of RAM or more. Open Docker.dmg, drag Docker into Applications and launch it
Windows64-bit Windows 10 (22H2 or later) or Windows 11 (23H2 or later), using WSL 2 or Hyper-V. Virtualisation enabled in the BIOS/UEFI; 8 GB of RAM
LinuxPackages for major distributions such as Ubuntu, Debian and Fedora

The part to watch is the price. Docker Desktop is not free for everyone.

Who uses itPrice
Individuals, education, non-commercial open sourceFree (Personal)
Companies with fewer than 250 employees and under US$10 million in annual revenueFree (Personal)
Larger companies, and government workA paid plan is required: Pro (US$9 per user per month, billed annually), Team ($15), Business ($24)

Signing in is not required. The screenshots in this article were taken on Personal without signing in ("PERSONAL" appears at top left). Signing in has benefits, such as looser rate limits when pulling images from Docker Hub.

NOTE

For work use, always check the size conditions (250 employees, US$10 million). It is free only when a company is below both. Prices and terms can change, so confirm the latest on the official site before rolling it out. If you do not qualify, the similar apps in chapter 12 are also options.

5

The main window

Launch it and the window below (the dashboard) opens. You can also open it at any time from the whale icon in the menu bar.

Docker Desktop's main window with numbers added. 1 the left-hand menu, 2 the search bar at the top, 3 the settings gear, 4 the engine status at bottom left, 5 the terminal and update notice at bottom right
The main window at a glance. (1) The left-hand menu switches screens, (2) search (Cmd+K) finds images and containers, and (3) the gear opens Settings. (4) Bottom left shows Docker Engine's status; (5) bottom right holds the terminal and update notices. (Captured on the author's Mac with Docker Desktop 4.89.0, 17 October 2026. Numbers and red boxes added afterwards.)
MenuWhat it is for
GordonAsk the AI assistant (chapter 11)
ContainersList, start, stop and delete containers; check logs and files
ImagesList and delete local images; check vulnerabilities
LogsLogs from all containers in one place
VolumesList, create and inspect volumes
KubernetesCreate a single-node Kubernetes cluster (only when you need it)
BuildsHistory of image builds, with timings and logs
Models / MCP ToolkitRun AI models; connect tools to AI (chapter 11)
Docker HubFind public images, then pull and run them
ExtensionsExtensions (extra screens and tools)
6

Using it 1: find an image and run it

Let us start by running the web server nginx ("engine-x"), without typing a single command.

The Docker Hub search screen. 1 Docker Hub in the left menu, 2 nginx typed into the search box, 3 the card for the official nginx image in the results
Step 1: (1) open Docker Hub from the left menu, (2) type "nginx" into the search box and press Enter, and (3) pick "nginx" at the top (the green ribbon marks an official image). (Captured on the author's Mac with Docker Desktop 4.89.0, 17 October 2026. Numbers and red boxes added afterwards.)
The nginx image page. 1 the tag selector (stable-alpine), 2 the Pull button, 3 the Run button
Step 2: (1) choose a tag (a version name), then either (2) Pull to download only, or (3) Run to download and start straight away. Here the tag was set to "stable-alpine" (stable and lightweight) before pressing Run. (Captured on the author's Mac with Docker Desktop 4.89.0, 17 October 2026. Numbers and red boxes added afterwards.)
The settings dialog shown after pressing Run. 1 container name kiji-web, 2 host port 8080 (container side 80/tcp), 3 the Run button
Step 3: (1) name the container (left empty, one is generated), (2) enter a port number on your computer, and (3) Run. With 8080 entered, opening localhost:8080 in a browser reaches port 80 inside the container. (Captured on the author's Mac with Docker Desktop 4.89.0, 17 October 2026. Numbers and red boxes added afterwards.)

After Run, the container starts as soon as the image has downloaded, and the view switches to the container's detail screen (the photo at the top). Opening http://localhost:8080 in a browser showed the "Welcome to nginx!" page, confirming that port 8080 on the computer is now connected to port 80 in the container.

POINT

When choosing an image, prefer ones marked "Docker Official Image" or "Verified Publisher". Anyone can publish an image, so a similar name can hide something quite different. And pin a version rather than using latest, so the contents do not change under you.

7

Using it 2: working with containers

Running containers appear on the Containers screen. This Mac has other containers too, so the list is filtered by name with the search box.

The Containers screen. 1 the search box filtered to kiji, 2 the 8080:80 port link, 3 the stop button, 4 the more-actions menu, 5 the delete button
The Containers screen. (1) Filter by name, (2) the port link opens a browser, (3) stop (or the play button to start a stopped one), (4) more actions such as restart or terminal, (5) delete. (Captured on the author's Mac with Docker Desktop 4.89.0, 17 October 2026. Numbers and red boxes added afterwards.)

A container has a life cycle. Here is how the buttons and the commands relate to it.

A container's life cycle, with buttons and commands

Image Template Running Up Exited Stopped Removed Gone run stop ■ start ▶ rm restart ↻ ToButtonCommand Stop it■ Stopdocker stop kiji-web Start again▶ Startdocker start kiji-web Restart↻ Restartdocker restart kiji-web DeleteBin icondocker rm -f kiji-web Read logsLogs tabdocker logs -f kiji-web

A stopped container is not gone. Its data is still there, and the play button starts it again. It disappears only when you delete it

Click a container's name to open its detail screen. This is the screen you will use most in Docker Desktop.

The container detail screen. 1 tabs such as Logs and Exec, 2 the port link, 3 the status (Running), 4 stop, start and restart buttons, 5 delete, 6 tools to search and copy the logs
Container details. (1) Tabs switch between logs, configuration, files, terminal and usage; (2) port link; (3) current status; (4) stop, start, restart; (5) delete; (6) search, filter, copy or clear the logs. (Captured on the author's Mac with Docker Desktop 4.89.0, 17 October 2026. Numbers and red boxes added afterwards.)
TabWhat it showsWhen to use it
LogsMessages the container writes outFirst stop when it will not start or shows errors
InspectConfiguration: environment variables, ports, networksChecking the setup is what you meant
Bind mountsFolders from your computer that are attachedWhen files are not where you expect
ExecA shell (terminal) inside the containerGoing inside to run commands
FilesThe files inside the containerReading or pulling out config files
StatsCPU, memory, disk and network usageFinding a heavy container
The Exec tab. 1 the Exec tab, 2 the output of printenv in a shell inside the container (including NGINX_VERSION=1.30.6), 3 Debug mode, 4 open in an external terminal
The Exec tab takes you inside the container. Running printenv in (2) shows its environment variables, such as NGINX_VERSION=1.30.6. (3) Debug mode is an investigation tool for images with few utilities (a paid-plan feature); (4) opens your usual terminal instead. (Captured on the author's Mac with Docker Desktop 4.89.0, 17 October 2026. Numbers and red boxes added afterwards.)
The Files tab. 1 the Files tab, 2 the MODIFIED marker on the etc folder, changed since start-up, 3 the Open file editor button
The Files tab lists the files inside the container. (2) "MODIFIED" marks places changed since it started. (3) You can open and edit a file, but the edits disappear when the container is deleted. (Captured on the author's Mac with Docker Desktop 4.89.0, 17 October 2026. Numbers and red boxes added afterwards.)
8

Using it 3: images and volumes

Pulled images are listed on the Images screen. A single image can run to hundreds of megabytes, and letting them pile up eats your disk. Delete the ones you no longer use from here.

The Images screen. 1 the Local and My Hub tabs, 2 disk usage, 3 nginx in the search box, 4 the run button, 5 the delete button
The Images screen. (1) Images on this machine (Local) and your own on Docker Hub (My Hub), (2) space used by images, (3) filter, (4) start a new container from this image, (5) delete. (Captured on the author's Mac with Docker Desktop 4.89.0, 17 October 2026. Numbers and red boxes added afterwards.)
The image detail screen. 1 the list of layers, 2 the Vulnerabilities and Packages tabs, 3 the list of CVEs with severity, 4 the Run button
Click an image's name to see inside it. (1) The layers it was built from; (2)(3) vulnerabilities (CVEs) and packages found by Docker Scout. At this point nginx:stable-alpine had 14 (the count changes daily). (Captured on the author's Mac with Docker Desktop 4.89.0, 17 October 2026. Numbers and red boxes added afterwards.)

Docker Scout's analysis builds a list of the packages in the image (an SBOM) and matches it against known vulnerabilities. "Has vulnerabilities" does not mean "dangerous right now", but items marked "Fixable" can often be cleared by switching to a newer image, so a regular look is reassuring.

Next, where data lives. The figure sums up the three places.

Where to keep data

In the container (default) On delete Data is lost Speed Fast Good for Temp files Where Writable layer Volume -v data:/data On delete Data stays Speed Fast Good for Databases Where Docker-managed Bind mount -v ./src:/app On delete Folder stays Speed Slower on Mac Good for Source code Where Your folder Anything you cannot lose goes in a volume or a bind mount Databases in volumes; shared folders are handy but slower on Mac/Win
Creating a volume on the Volumes screen. 1 the Create button, 2 the name field with kijidata, 3 the Create button
Creating a volume: (1) press Create, (2) enter a name, (3) Create. You then attach the volume to containers from the command line or Compose. (Captured on the author's Mac with Docker Desktop 4.89.0, 17 October 2026. Numbers and red boxes added afterwards.)

Attaching a volume made on screen to a container is done with a command (docker run -v) or in a Compose file. It helps to think of the screen as the place to list volumes, look inside them, and delete the ones you no longer need.

9

Using it 4: settings

Open Settings from the gear at top right. The first page worth a look is Resources.

The Resources page in Settings. 1 Resources on the left, 2 tabs such as Advanced and File sharing, 3 CPU limit 10, 4 memory limit 8 GB, 5 the Apply button
Settings > Resources. (2) The tabs also cover file sharing and proxies. (3) CPU and (4) memory are the limits given to the hidden Linux virtual machine. After a change, (5) Apply puts it into effect (the engine restarts). (Captured on the author's Mac with Docker Desktop 4.89.0, 17 October 2026. Numbers and red boxes added afterwards.)
SettingWhereGuideline
CPU and memory limitsResources > AdvancedStart around half your computer's memory; raise it for heavy databases. Too little and containers stop without warning
Disk limitResources > AdvancedSize of the virtual disk that holds images and volumes
File sharingResources > File sharingFolders containers may see. Check your project folder is covered
ProxiesResources > ProxiesFor pulling images through a company proxy
Start at loginGeneralOn if you use it daily; off to save memory if only now and then
Virtual machine typeGeneral (Mac)When unsure, keep the default (Apple Virtualization)
Automatic updatesSoftware updatesNew versions arrive almost weekly. Set to manual if your team keeps versions in step
KubernetesKubernetesEnable only when needed; when on it always uses memory
The Docker Engine page in Settings. 1 Docker Engine on the left, 2 a warning that a bad configuration can stop it starting, 3 the box for editing daemon.json, 4 the Apply button
Settings > Docker Engine. (3) holds the engine's configuration (daemon.json) as JSON. Registry mirrors, log limits and the like go here, but as warning (2) says, a mistake can stop the engine from starting. (Captured on the author's Mac with Docker Desktop 4.89.0, 17 October 2026. Numbers and red boxes added afterwards.)

The Docker Engine page is for advanced users. Here you write settings such as a registry mirror (an alternative download source) or a cap on log file size. Keep a copy of the original before editing so you can restore it quickly if the engine stops starting.

10

Screens and their commands

Everything the screens do can also be done with commands. Learn on screen first, then move to commands as you get comfortable; commands are easy to record in documents and scripts. Here is everything so far as commands.

# (1) Pull the image (Pull on screen)
docker pull nginx:stable-alpine

# (2) Start it with a name and a port (Run on screen)
docker run -d --name kiji-web -p 8080:80 nginx:stable-alpine

# (3) List containers (Containers screen; -a includes stopped ones)
docker ps -a

# (4) Read the logs (Logs tab; -f follows new lines)
docker logs -f kiji-web

# (5) Go inside (Exec tab)
docker exec -it kiji-web sh

# (6) Create a volume (Create on the Volumes screen)
docker volume create kijidata

# (7) Clean up (the delete buttons)
docker rm -f kiji-web
docker volume rm kijidata
docker image rm nginx:stable-alpine

# (8) See disk usage, and clear out what is unused
docker system df
docker system prune

To combine several containers, use Compose (see chapter 6 onwards of Docker from the Basics to Practice). Containers started with docker compose up are grouped under the project name on the Containers screen, so you can stop or delete them together.

11

The new AI features

Over the past year or two, Docker Desktop has gained a run of AI-related features. Here they are, from the top of the left menu.

The Gordon screen. 1 the New session button, 2 the button to choose a project folder, 3 sample prompts such as fixing a container error or writing a Dockerfile, 4 the prompt box
The AI assistant "Gordon" (beta). (1) Start a conversation; (2) choose a project folder and it reads the contents before answering. (3) Sample prompts; (4) type your question. (Captured on the author's Mac with Docker Desktop 4.89.0, 17 October 2026. Numbers and red boxes added afterwards.)
FeatureWhat it does
GordonAn AI assistant that knows Docker: investigating errors, writing and reviewing Dockerfiles, planning a clean-up of unused images, and so on. Also usable from the command line, and from the robot icon on each row of the container list
Model RunnerPulls AI models (such as large language models) the way you pull images and runs them locally. Enable it under Settings > AI first
MCP Toolkit (beta)Pick servers for MCP, a way of connecting outside tools to AI assistants, from a catalogue and run them in containers

All of these are new, many are in beta, and their screens and names change often. When you let Gordon read a project folder, remember that its contents are sent to an AI service, and check beforehand whether that is allowed for company code. For running AI models locally, the Dev Guide post Running Large Models Locally may also help.

12

Choosing among similar apps

Docker Desktop is not the only app that runs containers locally. They all use the same image format (OCI), so switching later is not hard.

AppOSPrice / licenceSuits
Docker DesktopMac, Win, LinuxFree for individuals and small companies; paid for large onesThose who value plentiful documentation, team consistency and official support
Rancher DesktopMac, Win, LinuxFree (Apache 2.0, SUSE)A free app with a GUI; easy Kubernetes (k3s). Choice of containerd or dockerd as the engine
Podman DesktopMac, Win, LinuxFree (Apache 2.0)Those who want Podman, with no resident daemon and no root needed; Red Hat environments
OrbStackMac onlyFree for personal use; paid for work (US$8 per user per month)Mac users who put lightness, speed and fast start-up first
ColimaMac, LinuxFree (MIT)No GUI needed; the command line is enough
Apple's containerMac (Apple silicon, macOS 26)Free (Apache 2.0)Trying Apple's own new approach, a lightweight virtual machine per container
Docker Engine (directly)LinuxFree (open source)Servers and Linux desktops; no virtual machine needed

Which one to pick (a rough guide)

Linux server or PC? Docker Engine itself No VM, free yes no No GUI needed (Mac)? CLI is enough Colima MIT, CLI only yes no Mac, speed first? Paid for work is OK OrbStack Mac only, paid at work yes no Want free open source? e.g. a large company Podman / Rancher Desktop Apache 2.0, free yes None of these? Docker Desktop: the most docs, easiest to standardise * A rough guide. All use the same OCI images, so switching later is easy

On Windows you can also install the Linux Docker Engine directly inside WSL 2. It is free, but you have to sort out the integration with Windows (file sharing, starting it up) yourself.

13

Tips and troubleshooting

  • Clean the disk regularly — images, stopped containers, unused volumes and build cache all pile up. See the breakdown with docker system df and clean up with docker system prune (volumes are removed only if you add --volumes)
  • Choose ARM images on Apple silicon Macs — most official images contain both and the right one is picked automatically. Intel-only images run with --platform linux/amd64, but slowly
  • When shared source code is slow — put masses of small files such as node_modules in a volume. The paid plans' Synchronized file shares are another option
  • Calling services on your computer from a container — use host.docker.internal, not localhost. Inside a container, localhost means the container itself
  • If you see "port is already allocated" — another app or container is using that port. Change the number (say 8081:80) or stop whatever is using it
  • When it will not start or misbehaves — from the "?" (Troubleshoot) at top right, try "Restart" first. If that fails, gather diagnostics (also possible with docker desktop diagnose)
  • Only trusted extensions — the settings screen itself warns that extensions run with host privileges. They can read and write files and control Docker Engine, so check where one comes from before installing it
  • Keep versions in step — in a team, align Docker Desktop and Compose versions, and write the versions into your setup guide
NOTE

Troubleshoot's "Clean up data" keeps your settings but deletes every container and image. "Reset to factory defaults" returns everything, settings included, to a fresh install. Important data in volumes (a development database, say) can be lost too, so always move it somewhere safe first.

§ — On one page

  1. Docker Desktop is an all-in-one app for using Docker on your computer: engine, commands, GUI, Kubernetes, vulnerability checks and an AI assistant.
  2. On Mac and Windows, a small Linux virtual machine runs behind the scenes. Most worries about memory, disk and speed come from there.
  3. The core words are image (the template), container (the instance), port (the entrance) and volume (storage that stays). Containers are disposable; data you keep goes in a volume.
  4. On screen, search Docker Hub, pick a tag and press Run, then set a name and port, and it is running. The detail screen's Logs, Exec and Files let you look inside, and every action has a matching command.
  5. Free for individuals and small companies, paid for large ones. Depending on your situation and taste, Rancher Desktop, Podman Desktop, OrbStack or Colima are alternatives.

References

The screenshots were taken on 17 October 2026 on the author's Mac (Apple silicon) with Docker Desktop 4.89.0 (Docker Engine 29.7.2, Compose v5.5.0). The latest version at the time of writing was 4.95.0 (12 October 2026), and screens can differ slightly between versions. Lists were filtered with the search box so that other containers and images would not appear. Prices, licence terms and requirements are from the official site and documentation as of October 2026. The comparison of similar apps and the selection chart are the author's rough guide.

App Notes No. 1 — A Guide to Docker Desktop / 2026.10

← Back to all posts