Docker Desktop 不会覆盖原有 docker 命令行工具,但会接管并管理独立的 Docker Engine 实例;默认不直接使用 /var/lib/docker,而是将镜像存储于 ~/.docker/desktop/vms/0/data/Docker.raw,导致 CLI 与 GUI 的磁盘占用显示不一致。

直接装 Docker Desktop 不会覆盖你已有的 docker 命令行工具,但它会接管并管理自己的 Docker Engine 实例;如果你之前用 docker-ce 跑着生产容器,别急着删——Docker Desktop 默认不碰 /var/lib/docker,但安装后它会尝试迁移或接管,容易导致命令行和 GUI 看到的容器状态不一致。
检查系统是否满足最低图形化运行条件
Docker Desktop 不是纯 GUI 应用,它依赖 Linux 桌面环境 + KVM 虚拟化 + GNOME 终端三者协同。缺一不可,否则启动失败或卡在白屏。
-
lsb_release -a必须显示 Ubuntu 22.04 LTS(Jammy)或更新版本;20.04 已停止官方支持,24.04(Noble)可运行但需确认 deb 包兼容性 -
grep -E 'vmx|svm' /proc/cpuinfo有输出,且kvm-ok返回KVM acceleration can be used,否则 Docker Desktop 启动时会报错Failed to start VM -
which gnome-terminal必须返回路径;用 KDE 或 XFCE 的用户需手动安装:sudo apt install gnome-terminal,否则点击“Open in Terminal”按钮无响应
卸载旧版 Docker 组件必须分两层清理
只执行 sudo apt remove docker-desktop 是不够的。残留的用户服务、密钥环配置、CLI 符号链接都会让新安装启动失败,典型症状是托盘图标一闪而逝或日志里反复出现 com.docker.cli: No such file or directory。
- 停掉用户级服务:
systemctl --user stop docker-desktop docker-desktop-root - 删干净用户数据:
rm -rf ~/.docker/desktop ~/.docker/desktop-lock - 删全局 CLI 引用:
sudo rm -f /usr/local/bin/com.docker.cli - 清空 apt 缓存残留:
sudo apt purge docker-desktop -y && sudo apt autoremove -y
安装 deb 包后必须手动加用户进 docker 组
Docker Desktop 安装器不会自动执行 sudo usermod -aG docker $USER,这会导致启动后提示 Permission denied while trying to connect to the Docker daemon socket,即使你已能用命令行 docker ps。
- 安装完立即执行:
sudo usermod -aG docker $USER - 然后登出再登录(不是重启),或运行:
newgrp docker(临时生效) - 验证是否生效:
groups输出里应含docker;再试docker info | grep "Default Runtime",看到runc表示连接成功
首次启动卡在“Starting Docker Engine”怎么办
这不是卡死,而是 Docker Desktop 在后台初始化 WSL2-like 的轻量虚拟机(LinuxKit),尤其在首次运行或清理过数据后,可能耗时 2–5 分钟。期间 CPU 占用高、硬盘灯狂闪属正常。若超 10 分钟无进展,才需干预。
- 查看真实日志:
journalctl --user-unit docker-desktop -f,重点找vpnkit或linuxkit相关错误 - 常见堵点:DNS 配置异常(如公司内网强制代理),临时切到手机热点可验证
- 强行重置:
~/.docker/desktop/bin/reset-docker-desktop.sh(存在则执行,不存在说明安装不完整)
真正容易被忽略的是:Docker Desktop 的镜像存储默认不放在 /var/lib/docker,而是在 ~/.docker/desktop/vms/0/data/Docker.raw 这个稀疏磁盘文件里。这意味着你用命令行 docker system df 看到的空间占用,和 GUI 里显示的“Disk image size”数值完全对不上——前者是宿主机视角,后者是虚拟机内部视角。调大磁盘配额得进 Settings → Resources → Disk image size,而不是去 du -sh /var/lib/docker。


















