docker / for-win

Bug reports for Docker Desktop for Windows
https://www.docker.com/products/docker#/windows
1.86k stars 291 forks source link

Stop Docker from installing WSL that is bundled with Windows 11. #13767

Open HummingMind opened 1 year ago

HummingMind commented 1 year ago

Description

Docker for Windows seems to always enable the old WSL2 that is bundled with Windows 11. During the 1st installation as well as during Docker version updates. This is really annoying.

WSL is distributed via the Windows store nowadays and installs a much newer version.

Reproduce

N/A

Expected behavior

Docker should be made aware of WSL that is already installed via the Microsoft store and should not keep re-installing the old WSL included in Windows 11 as a "Window Feature".

docker version

Client:
 Cloud integration: v1.0.35+desktop.5
 Version:           24.0.6
 API version:       1.43
 Go version:        go1.20.7
 Git commit:        ed223bc
 Built:             Mon Sep  4 12:32:48 2023
 OS/Arch:           windows/amd64
 Context:           default

Server: Docker Desktop 4.25.0 (126437)
 Engine:
  Version:          24.0.6
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.7
  Git commit:       1a79695
  Built:            Mon Sep  4 12:32:16 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.22
  GitCommit:        8165feabfdfe38c65b599c4993d227328c231fca
 runc:
  Version:          1.1.8
  GitCommit:        v1.1.8-0-g82f18fe
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

docker info

Client:
 Version:    24.0.6
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.11.2-desktop.5
    Path:     C:\Program Files\Docker\cli-plugins\docker-buildx.exe
  compose: Docker Compose (Docker Inc.)
    Version:  v2.23.0-desktop.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.9
    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: Docker Scout (Docker Inc.)
    Version:  v1.0.9
    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.6
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 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: 8165feabfdfe38c65b599c4993d227328c231fca
 runc version: v1.1.8-0-g82f18fe
 init version: de40ad0
 Security Options:
  seccomp
   Profile: unconfined
 Kernel Version: 5.15.90.1-microsoft-standard-WSL2
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 32
 Total Memory: 15.43GiB
 Name: LAPTOP18
 ID: fe7c65dc-79eb-4eb6-a31e-79610722709c
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 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
WARNING: daemon is not using the default seccomp profile

Diagnostics ID

11629DBB-BB38-487B-BC18-88A450161217/20231027232423

Additional Info

No response

mmarinchenko commented 1 year ago

It seems that in Windows 10 the situation is opposite.

DD v4.25.0 requires elevated privileges to run wsl --update, but if the user chooses to update WSL manually, DD always claims that WSL should be updated and refuses to run 🤷

WSL v1.2.5.0 is the latest stable version in Windows 10. wsl --update does not update it to any newer version (as of the date of writing this comment).

If DD requires a newer version of WSL, a pop-up window with an error message should show which version of WSL is installed currently and which version of WSL DD actually requires.

mmarinchenko commented 12 months ago

Some more details:

PS D:\> wsl --version
WSL: 2.0.9.0
Kernel: 5.15.133.1-1
WSLg: 1.0.59
MSRDC: 1.2.4677
Direct3D: 1.611.1-81528511
DXCore: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows: 10.0.19045.3693

When I choose to update WSL manually: Setup

DD doesn't start: Error

Diagnose & Feedback doesn't work because DD isn't running: Diag

huyz commented 2 months ago

Possibly related: https://forums.docker.com/t/docker-desktop-failing-to-start-after-update-wsl-update-failed/142701/2

huyz commented 2 months ago

@mmarinchenko Man I would love to be able to configure this Manually update WSL 2 myself optional, but I don't see this option when I reinstall. Any idea how to configure that after installation—perhaps some config file?

mmarinchenko commented 2 months ago

@huyz I think this option has been removed from DD since then. At least, I haven't seen this dialogue for a long time.

huyz commented 2 months ago

@mmarinchenko Ah thanks.

What a shame. This is causing tons of problems for people. I can't script anything if a UAC prompt breaks my flow. If this isn't fixed soon, I'll just have to abandon Docker Desktop for Windows. Maybe I should just get rid of Windows altogether and go with Proxmox