Docker Data Folder Structure on Windows (Volume, Image, Container)

Docker Desktop on Windows doesn’t actually run on Windows itself. Instead, it runs inside a full Linux environment made possible by WSL2 — a subsystem that runs Linux natively inside Windows, so Docker behaves as if it’s running on a real Linux machine.

When you open this path in File Explorer:

\wsl.localhostdocker-desktop

…what you’re seeing is the root filesystem of the Linux instance Docker uses to manage containers, images, volumes, and more.

📁 What’s inside \wsl.localhostdocker-desktop?

This is a full-fledged Linux OS, with the standard directory structure. If you’re coming from Windows, it might feel a bit unfamiliar — but every folder here has its purpose:

  • /bin – Core system commands like ls, sh, mkdir, etc.
  • /etc – System config files (kind of like the Registry on Windows)
  • /var – Logs, cache, temp files — includes system logs, APT cache, and Docker daemon data
  • /home – User home directories (Docker Desktop rarely uses this)
  • /proc, /sys, /dev – Special interfaces for talking to the kernel, devices, and processes
  • /run, /tmp – Temporary runtime files and sockets
  • /mnt – Mount point for drives, including the virtual disk Docker stores data on
Docker folder structure: containers, images, volumes, network
Docker folder layout on Windows: containers, images, volumes, network.

This design is what allows Docker on Windows to truly operate within a real Linux environment — no emulation involved.

Where does Docker store data?

All Docker containers, images, volumes, and network data are stored inside a virtual disk file (.vhdx). This disk is mounted in Linux at:

\wsl.localhostdocker-desktopmntdocker-desktop-diskdatadocker

Inside that docker directory, you’ll find:

  • containers/ – Each container’s filesystem and metadata
  • image/ – Layers, caches, and image data
  • volumes/ – The actual data you save via Docker volumes
  • network/ – Docker’s network settings
  • buildkit/, tmp/ – Build-time and runtime temp files

This is the real guts of Docker Desktop — the place where all your Docker CLI actions end up.

Example:

You spin up a MySQL container with a volume for database storage:

docker run -d --name mysql-test -v mysql_data:/var/lib/mysql mysql

→ The actual database files get saved at:

\wsl.localhostdocker-desktopmntdocker-desktop-diskdatadockervolumesmysql_data

But you should NOT edit these files directly — read on to see why.

Where is the actual .vhdx file?

Instead of writing every container file to your physical drive, Docker packs everything into a virtual disk file:

C:Users<your_username>AppDataLocalDockerwsldataext4.vhdx

→ This file is mounted inside Linux at:

/mnt/docker-desktop-disk/

Every container, image, and volume you create via the Docker CLI lives inside this one file.

⚠️ Should you open or modify these files?

Nope. Don’t do it.
Even though you can browse \wsl.localhost... in File Explorer and see all the folders:

  • These are system files actively in use by Linux
  • Docker does not guarantee safety if you modify them manually
  • You can mess up file permissions, break containers, or corrupt images

The right way to access data

Copy files from a container:

Want to pull a file out of a running container?

docker cp web_app:/app/backup.zip ./backup.zip

→ This copies backup.zip from the web_app container to your current directory.

Inspect contents of a volume:

Want to see what’s inside a volume called my_logs?

docker run --rm -it -v my_logs:/data alpine sh

→ This starts a temporary container, mounts the volume at /data, and lets you cat /data/log.txt or explore it directly.

Summary

  • Docker Desktop on Windows runs inside a real Linux system using WSL2
  • The path \wsl.localhostdocker-desktop is the Linux root filesystem
  • All Docker data (containers, images, volumes…) lives at:
    \wsl.localhostdocker-desktopmntdocker-desktop-diskdatadocker
  • That whole thing is stored in a virtual disk file at:
    C:Users<your_username>AppDataLocalDockerwsldataext4.vhdx
  • You shouldn’t edit Docker files manually — use Docker CLI instead

Takeaway

Understanding Docker Desktop’s filesystem layout helps you:

  • Debug container issues with confidence
  • Manage data and volumes accurately
  • Avoid breaking things by poking around the wrong way

🛠️ Docker runs on Linux — even when you’re using Windows.
Getting that into your head is key to mastering Docker Desktop.

Write a comment