Ubuntu虚拟机中无法运行Docker Desktop求助
解决Ubuntu虚拟机中Docker Desktop启动QEMU报错的方案
1. 启用虚拟机的嵌套虚拟化
必须给Ubuntu虚拟机开启嵌套虚拟化,这是Docker Desktop在虚拟机中运行的核心前提:
- VMware: 关闭虚拟机,进入编辑设置→处理器,勾选"虚拟化引擎"下的"虚拟化Intel VT-x/EPT或AMD-V/RVI"
- VirtualBox: 关闭虚拟机,在宿主机命令行执行:
VBoxManage modifyvm <你的虚拟机名称> --nested-hw-virt on - KVM: 编辑虚拟机XML配置,修改
<cpu>段(Intel用vmx,AMD用svm):<cpu mode='host-passthrough' check='none'> <feature policy='require' name='vmx'/> </cpu>
2. 验证Ubuntu系统的虚拟化支持
启动Ubuntu虚拟机后,执行命令确认嵌套虚拟化生效:
grep -E '(vmx|svm)' /proc/cpuinfo
能看到vmx或svm的输出,说明虚拟化支持正常。
3. 调整Docker Desktop的虚拟机资源配置
Docker Desktop自带的QEMU虚拟机可能因资源配置冲突报错:
- 打开Docker Desktop设置→Resources→Advanced
- 降低CPU核心数(比如设为2)和内存(比如设为4GB),避免资源过载
- 若有"Use the new Virtualization framework"选项,禁用它,切换回传统QEMU模式
4. 查看QEMU日志定位具体错误
通过日志获取更详细的报错原因:
cat ~/.docker/desktop/log/vm/driver.log
常见问题包括内存不足、权限受限等,若提示权限问题,执行:
sudo chown -R $USER:$USER ~/.docker
5. 替代方案:直接安装Docker Engine
如果以上方法无效,在Ubuntu虚拟机中直接安装Docker Engine更稳定,无需嵌套虚拟化:
# 卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc # 配置Docker官方仓库 sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 安装Docker Engine sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 配置非root用户权限 sudo usermod -aG docker $USER newgrp docker
验证安装:
docker run hello-world
内容的提问来源于stack exchange,提问作者Filip Novakovic
相关产品推荐
相关产品推荐

