Bug Report
Docker Desktop version: 4.69.0 (224084)
OS: Ubuntu 24.04 LTS (Noble)
Desktop: GNOME on Wayland (XDG_SESSION_TYPE=wayland)
GPU: NVIDIA RTX 4060 (proprietary driver not active for Wayland GL; Mesa fallback)
Description
After a fresh install of Docker Desktop on Ubuntu 24.04 with GNOME/Wayland, the application window never appears. The backend (com.docker.backend) and the Electron UI process both start successfully and remain running, but no window is visible on screen. The system tray icon is registered but clicking it has no effect.
Root Causes
Two separate issues combine to cause the invisible window:
1. GPU process crash (FATAL)
The Electron GPU process fails to launch and takes down the entire renderer:
GPU process launch failed: error_code=1002
GPU process isn't usable. Goodbye.
Log path: ~/.docker/desktop/log/host/Docker Desktop.stderr.log
This is triggered when the GPU sandbox cannot initialise — common on systems where the NVIDIA proprietary Wayland/GL stack is not fully configured.
2. Native Wayland surface not composited
Even when the GPU crash is suppressed, Docker Desktop hardcodes ozone-platform: 'wayland' in its window options. On affected systems the Wayland surface is created (confirmed via ~/.docker/desktop/log/host/electron-2026-04-20.log: [WINDOW] Open app://dd/new-license) but GNOME's Mutter compositor never renders it — the window exists but is invisible.
Forcing XWayland (--ozone-platform=x11) makes the window appear immediately via mutter-x11-frames.
Steps to Reproduce
- Install Docker Desktop 4.x on Ubuntu 24.04 with GNOME/Wayland session
- Start Docker Desktop (
systemctl --user start docker-desktop)
- Observe: backend running, tray icon present, no window appears
- Check
~/.docker/desktop/log/host/Docker Desktop.stderr.log → GPU process crash
Workaround
Wrap the Docker Desktop Electron binary to inject --disable-gpu --no-sandbox --ozone-platform=x11.
Quick fix script (also shown below):
# 1. Back up the original binary
sudo mv "/opt/docker-desktop/Docker Desktop" "/opt/docker-desktop/Docker Desktop.real"
# 2. Create wrapper
sudo tee "/opt/docker-desktop/Docker Desktop" << 'WRAPPER'
#!/bin/bash
exec "/opt/docker-desktop/Docker Desktop.real" --disable-gpu --no-sandbox --ozone-platform=x11 "$@"
WRAPPER
sudo chmod +x "/opt/docker-desktop/Docker Desktop"
# 3. Add systemd environment overrides
mkdir -p ~/.config/systemd/user/docker-desktop.service.d
cat > ~/.config/systemd/user/docker-desktop.service.d/override.conf << 'CONF'
[Service]
Environment="ELECTRON_OZONE_PLATFORM_HINT=x11"
Environment="GDK_BACKEND=x11"
Environment="LIBGL_ALWAYS_SOFTWARE=1"
CONF
# 4. Reload and restart
systemctl --user daemon-reload
systemctl --user restart docker-desktop
Expected Behaviour
Docker Desktop window appears on launch on Ubuntu/GNOME Wayland without manual patching.
Notes
- The
--disable-gpu flag is required to prevent the fatal GPU process crash; without it the renderer exits before the window can be shown
- The
--ozone-platform=x11 flag is required to force XWayland; even with ELECTRON_OZONE_PLATFORM_HINT=x11 set in the environment, the app's internal windowOptions override takes precedence
- The
--no-sandbox flag is needed because the Chromium sandbox conflicts with the systemd scope unit that already exists for the process (UnitExists D-Bus error)
- The window being targeted is
app://dd/new-license (first-run licence dialog) — this is the first window opened and the one that fails to render
Bug Report
Docker Desktop version: 4.69.0 (224084)
OS: Ubuntu 24.04 LTS (Noble)
Desktop: GNOME on Wayland (XDG_SESSION_TYPE=wayland)
GPU: NVIDIA RTX 4060 (proprietary driver not active for Wayland GL; Mesa fallback)
Description
After a fresh install of Docker Desktop on Ubuntu 24.04 with GNOME/Wayland, the application window never appears. The backend (
com.docker.backend) and the Electron UI process both start successfully and remain running, but no window is visible on screen. The system tray icon is registered but clicking it has no effect.Root Causes
Two separate issues combine to cause the invisible window:
1. GPU process crash (FATAL)
The Electron GPU process fails to launch and takes down the entire renderer:
Log path:
~/.docker/desktop/log/host/Docker Desktop.stderr.logThis is triggered when the GPU sandbox cannot initialise — common on systems where the NVIDIA proprietary Wayland/GL stack is not fully configured.
2. Native Wayland surface not composited
Even when the GPU crash is suppressed, Docker Desktop hardcodes
ozone-platform: 'wayland'in its window options. On affected systems the Wayland surface is created (confirmed via~/.docker/desktop/log/host/electron-2026-04-20.log:[WINDOW] Open app://dd/new-license) but GNOME's Mutter compositor never renders it — the window exists but is invisible.Forcing XWayland (
--ozone-platform=x11) makes the window appear immediately viamutter-x11-frames.Steps to Reproduce
systemctl --user start docker-desktop)~/.docker/desktop/log/host/Docker Desktop.stderr.log→ GPU process crashWorkaround
Wrap the Docker Desktop Electron binary to inject
--disable-gpu --no-sandbox --ozone-platform=x11.Quick fix script (also shown below):
Expected Behaviour
Docker Desktop window appears on launch on Ubuntu/GNOME Wayland without manual patching.
Notes
--disable-gpuflag is required to prevent the fatal GPU process crash; without it the renderer exits before the window can be shown--ozone-platform=x11flag is required to force XWayland; even withELECTRON_OZONE_PLATFORM_HINT=x11set in the environment, the app's internalwindowOptionsoverride takes precedence--no-sandboxflag is needed because the Chromium sandbox conflicts with the systemd scope unit that already exists for the process (UnitExistsD-Bus error)app://dd/new-license(first-run licence dialog) — this is the first window opened and the one that fails to render