Open chillwinston opened 4 days ago
Modifying the .wslconfig file to limit the memory usage of WSL2 is an effective temporary solution.
Before the memory usage problem is solved, it is recommended to turn off the Docker Scout function by default to avoid unnecessary resource consumption.
If it still doesn't work, it may be a compatibility issue between Docker and Mac. You can switch to Servbay to check the development environment
Description
Environment: Windows, 16 Gb, AMD 5900HX. ~4 Gb of RAM spare after VS Code, etc
Overview ====== Docker (and Docker Desktop) is a great piece of software that I've used off and on for some time - however it seems to suffer the same fate that a number of CNCF projects have (Rancher and Longhorn and being others that have had clear bugs that I've encountered): it doesn't have any formal testing approach and uses the single mantra of "our customers will test it". This is a bad mantra. A better one is "we'll test it ourselves and then beta with selected customers". This isn't hard as online testing environments are available and plentiful.
I've used Docker Desktop only for it to hammer my machine to the point it's unusable. That's due to two factors:
Both of these should have been found during testing on "constrained machines" such as mine of 16 Gb.
Repro steps
======
TESTING TESTING --- TESTING TESTING -- TESTING
====== Questions:
Summary:
Resolution:
Changing the %userprofile%.wslconfig file to:
Docker Desktop settings
Turning off SBOM indexing
----------------
Reproduce
Expected behavior
Consumption of system resources is minimal by default, especially Docker Scout. Scout's overuse of memory should be viewed as a bug (not a feature) and replaced with MMAP'ed files or similar facilities to limit memory usage.
PREFERENTIALLY
docker version
Client: Version: 27.2.0 API version: 1.47 Go version: go1.21.13 Git commit: 3ab4256 Built: Tue Aug 27 14:17:17 2024 OS/Arch: windows/amd64 Context: desktop-linux
Server: Docker Desktop 4.34.3 (170107) Engine: Version: 27.2.0 API version: 1.47 (minimum version 1.24) Go version: go1.21.13 Git commit: 3ab5c7d Built: Tue Aug 27 14:15:15 2024 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.7.20 GitCommit: 8fc6bcff51318944179630522a095cc9dbf9f353 runc: Version: 1.1.13 GitCommit: v1.1.13-0-g58aa920 docker-init: Version: 0.19.0 GitCommit: de40ad0
docker info
docker info Client: Version: 27.2.0 Context: desktop-linux Debug Mode: false Plugins: buildx: Docker Buildx (Docker Inc.) Version: v0.16.2-desktop.1 Path: C:\Program Files\Docker\cli-plugins\docker-buildx.exe compose: Docker Compose (Docker Inc.) Version: v2.29.2-desktop.2 Path: C:\Program Files\Docker\cli-plugins\docker-compose.exe debug: Get a shell into any image or container (Docker Inc.) Version: 0.0.34 Path: C:\Program Files\Docker\cli-plugins\docker-debug.exe desktop: Docker Desktop commands (Alpha) (Docker Inc.) Version: v0.0.15 Path: C:\Program Files\Docker\cli-plugins\docker-desktop.exe dev: Docker Dev Environments (Docker Inc.) Version: v0.1.2 Path: C:\Program Files\Docker\cli-plugins\docker-dev.exe extension: Manages Docker extensions (Docker Inc.) Version: v0.2.25 Path: C:\Program Files\Docker\cli-plugins\docker-extension.exe feedback: Provide feedback, right in your terminal! (Docker Inc.) Version: v1.0.5 Path: C:\Program Files\Docker\cli-plugins\docker-feedback.exe init: Creates Docker-related starter files for your project (Docker Inc.) Version: v1.3.0 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 scout: Docker Scout (Docker Inc.) Version: v1.13.0 Path: C:\Program Files\Docker\cli-plugins\docker-scout.exe
Server: Containers: 9 Running: 2 Paused: 0 Stopped: 7 Images: 7 Server Version: 27.2.0 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 splunk syslog Swarm: inactive Runtimes: runc io.containerd.runc.v2 nvidia Default Runtime: runc Init Binary: docker-init containerd version: 8fc6bcff51318944179630522a095cc9dbf9f353 runc version: v1.1.13-0-g58aa920 init version: de40ad0 Security Options: seccomp Profile: unconfined Kernel Version: 5.15.153.1-microsoft-standard-WSL2 Operating System: Docker Desktop OSType: linux Architecture: x86_64 CPUs: 16 Total Memory: 1.924GiB Name: docker-desktop ID: 14a45e6d-8b81-4d93-8b5a-99d84abb7a65 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 Labels: com.docker.desktop.address=npipe://\.\pipe\docker_cli 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
NOT APPLICABLE
Additional Info
Seriously - TEST the software that's being made DURING the development process. Don't get to the end of development, deploy it to customers and then say "well that bug can't be fixed because that would be a total rewrite". That's clearly what occurred with Scout as the memory utilisation is ludicrous and the "memory bug" hasn't been fixed in over a year.