我有一个家庭实验室服务器,目前我用来运行几个 VM。我想开始迁移到一些容器使用,但将继续需要虚拟机。所以我的问题是我可以运行 Ubuntu 作为我的主机操作系统,然后安装和运行 KVM 来满足我的 VM 需求和 Docker 来满足我的容器需求。
在我开始移动之前,我想知道它们是否能在单个 Ubuntu 服务器上很好地共存。
欣赏你的想法!
是的,KVM 来宾(例如,在 QEMU 中运行的 Windows 或 OSX,使用 KVM)和 Docker(例如,运行容器的 Docker CE)在同一个 Ubuntu 实例上同时运行良好。
你的问题基本上描述了我的工作量。目前我正在运行两个 Android 模拟器(使用硬件虚拟化加速,即 Linux 上的 KVM)、一个 Windows 10 QEMU 来宾、一个 OS X High Sierra QEMU 来宾和 Docker(通过这些说明安装https://docs. docker.com/install/linux/docker-ce/ubuntu/),同时在 Ubuntu 18.04 主机上运行他们的 hello world 示例。
其工作原理的简明解释是 Linux 上的虚拟机(QEMU 等)使用管理程序(在 QEMU 的情况下为 KVM,但 Virtualbox 和 VMWare 使用不同的管理程序)来使用您计算机的硬件资源,而 Docker 使用 linux 命名空间来简单地使用当前运行的内核的可用硬件资源,但与主操作系统隔离。
通过这种方式,KVM 来宾和 Docker 实际上使用不同的技术运行,并且在内核级别甚至彼此之间实际上并不相互关联。这与您尝试同时使用不同的虚拟机管理程序(例如 QEMU+KVM 和 VirtualBox)的情况相反 - 这不起作用,因为您一次只能运行一种类型的虚拟机管理程序(尽管您可能运行多个来自每种类型的虚拟机管理程序的虚拟机)。
这里对技术细节有很好的解释:https : //stackoverflow.com/questions/16047306/how-is-docker-different-from-a-virtual-machine