Ubuntu下运行Docker Desktop后Virtual Box无法工作求助
Docker Desktop与VirtualBox在Ubuntu上的冲突解决方法
冲突根源
Docker Desktop for Linux默认采用KVM作为虚拟化后端,而VirtualBox需要独占主机的硬件虚拟化扩展(如Intel VT-x/AMD-V)。同一时间只能有一个hypervisor(虚拟机监控程序)控制这些硬件资源,因此当KVM模块加载后,VirtualBox无法获取所需资源,导致虚拟机崩溃报错。
解决方案
方案1:让Docker Desktop使用VirtualBox作为后端
打开Docker Desktop的设置界面,依次进入Resources > Advanced,在Virtualization backend选项中选择VirtualBox,保存设置后重启Docker Desktop。此时两者共用VirtualBox作为hypervisor,避免资源抢占冲突。
方案2:手动切换KVM与VirtualBox的资源占用
如果不想更改Docker Desktop的后端,可以手动管理KVM模块:
- 先停止Docker Desktop服务:
systemctl stop docker-desktop - 卸载KVM相关内核模块(根据CPU类型选择):
# Intel CPU用户执行 sudo rmmod kvm_intel sudo rmmod kvm # AMD CPU用户执行 sudo rmmod kvm_amd sudo rmmod kvm - 启动VirtualBox使用虚拟机,用完后恢复KVM并重启Docker:
# Intel CPU用户执行 sudo modprobe kvm_intel # AMD CPU用户执行 sudo modprobe kvm_amd systemctl start docker-desktop
方案3:改用Docker Engine替代Docker Desktop
Docker Engine是Linux原生的容器运行时,不需要依赖hypervisor(容器基于Linux内核特性实现),因此不会和VirtualBox产生虚拟化资源冲突:
- 卸载Docker Desktop:
sudo apt remove docker-desktop - 安装Docker Engine:
sudo apt update sudo apt 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 sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
安装完成后,Docker直接通过内核容器运行,VirtualBox可正常使用无冲突。
内容的提问来源于stack exchange,提问作者sina hassani
相关产品推荐
相关产品推荐

