Install Docker Desktop on Windows 11 with a Screen Reader
Install Docker Desktop on Windows 11 with NVDA, verify it from PowerShell and Ubuntu on WSL, and run your first container.
Watch the video
Correction for the video: At about 5:22, the laptop-layout demonstration uses
NVDA+Shift+Backspaceand thenNVDA+[. The correct sequence isNVDA+Backspaceto move the navigator object to focus,NVDA+Shift+Mto route the mouse to it, andNVDA+[to left-click. The written steps below use this corrected sequence.
Install Docker Desktop from the keyboard
This tutorial walks through installing Docker Desktop on Windows 11 entirely from the keyboard with the NVDA screen reader. We will check WSL, download and install Docker Desktop, run the container equivalent of “Hello, World!”, and prove that Docker works from both PowerShell and Ubuntu on WSL.
This is the setup step for the next part of the series, where I will put the accessible tic-tac-toe game I built with Codex CLI inside a container and run it locally.
What you need
This walkthrough uses the WSL 2 backend and Linux containers. Docker’s current Windows requirements include:
- Windows 11 64-bit, version 23H2, build 22631 or newer, on Pro, Enterprise, or Education
- WSL version 2.1.5 or newer
- a WSL 2 Linux distribution, such as Ubuntu, if you want to use Docker from Linux
- a 64-bit processor with Second Level Address Translation, also called SLAT
- hardware virtualization enabled in the BIOS or UEFI
- 8 GB of system memory
- an internet connection and enough disk space for Docker Desktop and the images you pull
If you still need WSL and Ubuntu, follow Install WSL and Ubuntu on Windows the Modern Way before continuing.
Docker Desktop’s normal per-user installation does not require administrator rights. The one exception is enabling WSL 2 for the first time, which is a one-time system change that does require administrator access.
Docker Desktop is free for personal use, education, non-commercial open source projects, and qualifying small businesses. Docker lists the small-business limit as fewer than 250 employees and less than $10 million in annual revenue. Government entities and professional use outside the free terms require a paid subscription, so check Docker’s current license terms if you are installing it for an organization.
I tested this on a Lenovo 20YQ009QUS running Windows 11 Pro, with 16 GB of RAM, an Intel i5-11500H, and an NVIDIA T1200. WSL 2 and Ubuntu were already installed and working.
Step 1: Check your WSL version
Open PowerShell, then run:
wsl --version
Docker Desktop requires WSL 2.1.5 or newer and recommends keeping WSL current. If your version is older, open PowerShell as administrator and run:
wsl --update
Next, list your installed Linux distributions:
wsl --list --verbose
The shorter form is:
wsl -l -v
Find Ubuntu, or the distribution you plan to use, and make sure its VERSION column says
2. If it says 1, back up any important files before converting the distribution, then
run this command with its exact name:
wsl --set-version Ubuntu 2
Microsoft warns that converting an existing distribution can take time and can fail, which is why the backup matters.
Step 2: Choose the correct Windows download
Open the Docker Desktop for Windows installation page. Docker currently provides an x86_64 download and a Windows on Arm download marked Early Access.
To check which architecture your computer uses:
- Press
Windows+Ito open Settings. - Go to System, then About.
- Find the System type under Device specifications.
I used the Copy button on the About page, pasted the information into Notepad, pressed
Ctrl+End, and moved up to the System type line. An x64-based processor uses the x86_64,
also called AMD64, Docker Desktop download. An Arm computer identifies itself as an
ARM-based processor.
When I tested Docker’s product page, the Download Docker Desktop control behaved like a hover menu. If the normal keyboard controls do not open it, NVDA’s mouse-routing commands can help:
- Desktop keyboard layout: press
NVDA+numpadMinusto move the navigator object to the focused control,NVDA+numpadDivideto route the mouse there, thennumpadDivideto left-click. - Laptop keyboard layout: press
NVDA+Backspaceto move the navigator object to the focused control,NVDA+Shift+Mto route the mouse there, thenNVDA+[to left-click.
After opening the menu, move through the choices and select the Windows download that
matches your processor. My browser opened a save dialog where Alt+S saved
Docker Desktop Installer.exe in Downloads.
Step 3: Install Docker Desktop for your user account
Open Downloads, find Docker Desktop Installer.exe, and press Enter.
The current installer offers two modes. Per-user is the recommended default. It installs Docker Desktop here and does not require elevation:
%LOCALAPPDATA%\Programs\DockerDesktop
The all-users mode installs under C:\Program Files, requires administrator rights, and
supports Windows containers. This tutorial uses Linux containers, so I left the per-user
option selected. On my installer, I also left the desktop-shortcut checkbox selected.
If the installer asks which backend to use, select WSL 2. Follow the remaining prompts, wait for the installation to finish, and activate Close.
Step 4: Start Docker Desktop
Docker Desktop did not start automatically after installation on my machine. Press the
Windows key, type Docker, and open Docker Desktop from the search results.
Docker requires you to accept its subscription agreement before the application runs. On my first-run screen, I could skip signing in and continue to the Containers screen. You do not need a Docker account for this local test. Signing in provides access to your Docker Hub repositories and raises the Docker Hub pull limit, but it is optional unless an organization has configured sign-in enforcement.
At the bottom of my Docker Desktop window, the status said Engine running. Windows also
placed the Docker whale icon in the system tray. Press Windows+B to move to the system
tray; on Windows 11, the icon may be behind the hidden-icons chevron.
Step 5: Restart your terminal
Close every open Windows Terminal window with Alt+F4, then open a new one.
This step matters because the installer added Docker to PATH. A terminal that was already
running kept the old environment on my machine, and opening another tab in that same window
did not refresh it. Closing the whole window and reopening it loaded the new command.
Step 6: Verify Docker and run your first container
In the new PowerShell window, run:
docker version
The normal output has a Client section for the Docker CLI and a Server section for the
Docker Engine. Seeing both confirms that the command is installed and can reach the running
engine.
Now run:
docker run hello-world
On the first run, Docker may say that it is unable to find hello-world:latest locally.
That is expected. Docker pulls the official image from Docker Hub, creates a container from
the image, runs the small program inside it, and sends its output back to your terminal.
Look for Hello from Docker! as the success message.
An image is the reusable package or blueprint. A container is an instance created from that
image. The hello-world container prints its message and exits, so it does not stay running
in the background.
If you only plan to use Docker from Windows, the main installation is complete. Continue if you also work inside Ubuntu on WSL.
Step 7: Verify Docker inside Ubuntu
Start your default WSL distribution from PowerShell:
wsl
At the Linux prompt, run the same checks:
docker version
docker run hello-world
Both commands worked immediately on my machine. The second hello-world run reused the
image Docker Desktop had already pulled from PowerShell because both terminals were talking
to the same Docker Desktop engine.
On my installation, integration with my default Ubuntu distribution was already enabled.
Do not assume that yours is. If Ubuntu says that docker is not found:
- Open Docker Desktop.
- Open Settings.
- Go to Resources, then WSL Integration.
- Enable the distribution you want to use.
- Apply the change, then close and reopen the Ubuntu terminal.
With Docker Desktop’s WSL integration, I did not use sudo, install Docker again inside
Ubuntu, or add my Linux user to a docker group. Docker also warns that a separate Docker
Engine or Docker CLI installed directly inside the WSL distribution can conflict with
Docker Desktop, so remove that separate installation before using this integration.
Step 8: Quit Docker Desktop when you are finished
Closing the Docker Desktop window did not stop the engine on my machine. To shut it down:
- Press
Windows+Bto move to the system tray. - Open the hidden-icons chevron if needed.
- Find Docker Desktop.
- Press the Applications key or
Shift+F10for its context menu. - Move to Quit Docker Desktop and press Enter.
After quitting, Docker commands that need the engine fail until you start Docker Desktop again. I tried this once on purpose so I would recognize the connection error later.
Where Docker Desktop stores its files
For the per-user installation used in this tutorial, the important Windows locations are:
- Program files:
%LOCALAPPDATA%\Programs\DockerDesktop - WSL engine data:
%LOCALAPPDATA%\Docker\wsl - Images, containers, and volumes:
%LOCALAPPDATA%\Docker\wsl\data\docker_data.vhdx - Main settings file:
%APPDATA%\Docker\settings-store.json
The docker_data.vhdx virtual disk is where the Docker data grows as you pull images,
create containers, and store volumes.
Why I used Docker Desktop instead of Docker Engine in Ubuntu
Docker Engine and the Moby project remain open source. Docker Desktop is a separate product licensed under Docker’s subscription agreement and built from open source components.
I chose Docker Desktop for this series because one per-user installation gives me a Docker engine that I can use from both PowerShell and Ubuntu. The tradeoff is that Docker Desktop runs a Linux virtual machine through WSL 2 and uses memory and disk space while it is running. WSL allocates memory dynamically, and quitting Docker Desktop releases the engine when I do not need it.
Installing Docker Engine directly inside Ubuntu is a different valid workflow, but it is not the setup the rest of this series assumes.
Remove Docker Desktop
Before uninstalling, back up anything you need. Docker warns that uninstalling Docker Desktop destroys the containers, images, volumes, and other Docker data stored on the machine.
Quit Docker Desktop, then open Windows Settings, go to Apps and Installed apps, find Docker Desktop, and choose Uninstall.
Your Ubuntu distribution is separate from Docker Desktop. Do not unregister or delete Ubuntu while removing Docker. Docker also notes that some Docker files can remain after the uninstaller finishes; its official uninstall guide lists the locations to inspect if you need a complete cleanup.
What I found
The installation itself was the easy part: one download, one dialog, and no elevation prompt with the per-user option. The checks that protected me from the most likely problems took only a few minutes:
- confirm that WSL is version 2.1.5 or newer
- confirm that Ubuntu is running as a WSL 2 distribution
- check System type before choosing x86_64 or Arm
- close the entire terminal window after installation so the new
PATHloads - test
docker versionanddocker run hello-worldfrom both PowerShell and Ubuntu
On this machine, WSL integration with Ubuntu was already active, so Docker worked there
without sudo or a second installation. That leaves the machine ready for the next step:
putting the tic-tac-toe game into a container.
Sources
- Install Docker Desktop on Windows
- Docker Desktop WSL 2 backend
- WSL 2 best practices for Docker Desktop
- Docker Desktop license agreement
- Sign in to Docker Desktop
- Back up and restore Docker Desktop data
- Uninstall Docker Desktop
docker versionreferencehello-worldofficial image- Microsoft WSL command reference
- NVDA commands quick reference