Complete beginner, running the hello-world image on Windows 10 (likely the Home edition) and encountering an error

( * I don’t know why the image fails to upload ,so , just paste it down here)

PS C:\WINDOWS\system32> docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:a13ec89cdf897b3e551bd9f89d499db6ff3a7f44c5b9eb8bca40da20eb4ea1fa
Status: Downloaded newer image for hello-world:latest
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create
failed: runc create failed: invalid rootfs: stat /var/run/desktop-containerd/daemon/io.containerd.runtime.v2.task/moby/b
cbf83dd37c8960fad531fddd02ce85a959430eb999b32580b8ecdb250a57f55/E:\apps\dockerdata/vfs/dir/59ee320adcd0a4a0da9c447b00c0e
524be4ae42be5e5c1e41aa783534453c3ca: no such file or directory: unknown.

(I am a complete beginner and unfamiliar with many concepts and terms, so I am having trouble understanding what this error means and how to handle it.)

I edited your post to add code block. Please, format your posts according to the following guide: How to format your forum posts
In short: please, use </> button to share codes, terminal outputs, error messages or anything that can contain special characters which would be interpreted by the MarkDown filter. Use the preview feature to make sure your text is formatted as you would expect it and check your post after you have sent it so you can still fix it.

Regarding the error message: it means Docker couldn’t create the container’s root filesystem properly. How exactly did you install Docker and on what filesystem? I cans ee “vfs” in the error message which shouldn’t be their. Did you try to move Docker Desktop’s virtual machine to a different folder possibly on a mounted network filesystem? But even then I don’t know why it would affect Docker inside the virtual machine to change the original storage driver.

Please share the output of the following command:

docker info

You can remove ip addresses from the output if you want to.

PS C:\WINDOWS\system32> docker info
Client:
 Version:    24.0.2
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.11.0
    Path:     C:\Program Files\Docker\cli-plugins\docker-buildx.exe
  compose: Docker Compose (Docker Inc.)
    Version:  v2.19.1
    Path:     C:\Program Files\Docker\cli-plugins\docker-compose.exe
  dev: Docker Dev Environments (Docker Inc.)
    Version:  v0.1.0
    Path:     C:\Program Files\Docker\cli-plugins\docker-dev.exe
  extension: Manages Docker extensions (Docker Inc.)
    Version:  v0.2.20
    Path:     C:\Program Files\Docker\cli-plugins\docker-extension.exe
  init: Creates Docker-related starter files for your project (Docker Inc.)
    Version:  v0.1.0-beta.6
    Path:     C:\Program Files\Docker\cli-plugins\docker-init.exe
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.
    Version:  0.6.0
    Path:     C:\Program Files\Docker\cli-plugins\docker-sbom.exe
  scan: Docker Scan (Docker Inc.)
    Version:  v0.26.0
    Path:     C:\Program Files\Docker\cli-plugins\docker-scan.exe
  scout: Command line tool for Docker Scout (Docker Inc.)
    Version:  0.16.1
    Path:     C:\Program Files\Docker\cli-plugins\docker-scout.exe

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 24.0.2
 Storage Driver: vfs
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 3dce8eb055cbb6872793272b4f20ed16117344f8
 runc version: v1.1.7-0-g860f061
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
 Kernel Version: 5.15.90.1-microsoft-standard-WSL2
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 7.694GiB
 Name: docker-desktop
 ID: 3c712c20-6953-4d83-8a9d-b4d54f975154
 Docker Root Dir: E:\apps\dockerdata
 Debug Mode: true
  File Descriptors: 43
  Goroutines: 65
  System Time: 2023-07-11T06:36:28.9266402Z
  EventsListeners: 10
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Experimental: true
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 Registry Mirrors:
  https://docker.mirrors.ustc.edu.cn/
  https://hub-mirror.c.163.com/
  https://reg-mirror.qiniu.com/
 Live Restore Enabled: false

WARNING: No blkio throttle.read_bps_device support
WARNING: No blkio throttle.write_bps_device support
WARNING: No blkio throttle.read_iops_device support
WARNING: No blkio throttle.write_iops_device support

with wsl?

so I need to use wsl_path instead with win10_path in Docker Root Dir? (I still dont understand the problem。。。。)

How did you configure the Docker Root Dir? You must have configured it yourself, as the default path should be /var/lib/docker. Docker for Linux containers requires a linux filesystem. In this case it’s the filesystem of the wsl2 distribution.

Please make sure to allways revert custom settings in case something is not working. This helps to pinpoint whether you custom settings introduced the problems.

I thought I have sent this message hours ago, but forgot to click on Reply…

Now I understand that strange output. Just don’t change the docker data root the way you could do with Docker CE. You need to change where Docker Desktop saves the virtual machine itself. Please, try to search for “Windows disk image location” on the forum. I never did that and I remember that not everyone managed to change it, but the documentation mentions it too:

I don’t know what happens when you change the data root in Docker Desktop even if you use a path valid inside WSL. There are some configurations that you can change, but don’t change anything filesystem related. The filesystem is complicated in Docker Desktop due to the multiple layers of isolation, so some references may not work even if you think that’s valid. Or if the reference work, that could be a network filesystem from the Docker’s point of view.