在 Linux 上同时运行 Docker 和 Virtualbox?或者在 VM 内运行 Docker?

在 Linux 上同时运行 Docker 和 Virtualbox?或者在 VM 内运行 Docker?

简短版本:我想我搞砸了想要同时在 Linux 上运行 Docker 和 Virtualbox,我在想我是否应该将我的 docker 设置迁移到它自己的虚拟机中?

System Summary (Linux Mint Host)
    Current OS: Linux Mint 21.1 Vera base: Ubuntu 22.04 jammy
    Desktop: Cinnamon 5.6.8
    Motherboard: ASRock B550M-ITX/ac
    CPU: AMD Ryzen 5 5500 (SVM Enabled)
    GPU: NVIDIA G96CGL [Quadro FX 580] (old, just using for now)
    SSD: 500GB with 2 partitions (Linux Mint partition and Alpine Linux Partition)

Network Devices:
    NAS: QNAP NAS w 40TB SMB Share (main storage). Runs a Plex server but don't want to run Containers on it due to limited RAM and CPU
    Main Desktop Running Windows 10 (used to VNC and SSH into 'server' to administer)

我把这台机器组装成一种“家庭微型服务器”,用来学习和使用 Docker 来托管一些像 Plex 这样的应用程序,为我的系统构建一个基于 Web 的监控仪表板,并将其用于基本的管理任务(使用 Filebot 重命名/排序,使用 czkawka 进行重复数据删除)。

但我还想用它来托管一些虚拟机,这样我就可以使用其中一个作为远程桌面,以便在外出时登录(可能是 Linux Mint),并使用其他一些虚拟机来安装/试用其他发行版并在更受限制的环境中编写一些 Python 脚本。我的 Docker 环境的基本内容现已设置并运行,但当我开始在虚拟机上启动时,我遇到了一些问题和错误;

VM Name: MintBox
VirtualBox can't enable the AMD-V extension. Please disable the KVM kernel extension, recompile your kernel and reboot (VERR_SVM_IN_USE).
Result Code:NS_ERROR_FAILURE (0X80004005)
Component: ConsoleWrap
Interface:IConsole {6ac83d89-6ee7-4e33-8ae6-b257b2e81be8}

在阅读了几个小时的论坛内容后,我想我已经意识到,尽管 Docker 和 Virtualbox 有所不同,但它们无法很好地协同工作,而且它们似乎都使用相同的 SVM/虚拟化内核/模块/“东西”。起初,我以为冲突是由于 x11vnc 在主机上运行,​​但深入研究后发现lsof | grep kvm,冲突似乎是由 Docker 引起的。我确实考虑过使用 Docker 来运行完整的操作系统,但我认为这可能更复杂,而且风险更大。

因此,在我进一步操作之前,我是否应该停止并将 Docker 环境移至其自己的 VM,以便我可以让它继续运行并让其他 VM 并行运行?我还有哪些其他低维护选项?

第一次发帖/提问,对虚拟化和 Docker 比较陌生,对 Linux 有基本的了解,所以请温柔一点。

答案1

问题在于 Docker Desktop。

pgrep -af qemu显示参考file=/home/USER/.docker/desktop/vms/0/data/Docker.raw,当仔细查看文档 docs.docker.com/desktop/install/linux-install 时,Docker Desktop 使用与 Virtualbox 相同的 VM/KVM/SVM 运行。

关闭 Docker Desktop 后我就可以按预期运行 Virtualbox,并且我能够使用命令行直接重新启动我的容器docker run

请注意,Docker Desktop 容器、卷和图像与标准 Docker Engine 分开,因此必须在不使用桌面的情况下重新启动。非常感谢 Portainer 让这个过程变得比原本轻松得多!

相关内容