Docker 镜像 + 容器 vs. KVM / VMware / VirtualBox

Docker 镜像 + 容器 vs. KVM / VMware / VirtualBox

我试图了解 KVM / VMware / VirtualBox 中使用的图像和 Docker 图像 + 容器之间的区别。

我可以使用 Ubuntu ISO 将整个操作系统安装到 VirtualBox 中,本质上是将所有内容写入存储在机器某处的映像文件中。现在,如果出于某种原因我决定要移动 Ubuntu 映像并在另一台计算机上运行它,我只需将映像复制到另一台计算机并从那里运行它即可。

现在,Docker 还拥有可能包含 Ubuntu 的镜像,可以运行几乎任何应用程序。我必须设置一个容器来存储我的所有更改和状态。现在,如果我想执行与 VirtualBox 镜像相同的操作,将我的 Docker 镜像 + 容器传输到另一台计算机并从那里运行它,这一步似乎相当困难。我真的不明白为什么。

所以我的问题是,Docker 镜像和上面提到的其他镜像之间究竟有什么概念上的区别?为什么我不能随心所欲地在机器上复制这些镜像?

答案1

Docker 用于运行微服务,它使用 Linux 内核的资源隔离功能(例如 cgroups 和内核命名空间)以及支持联合的文件系统(例如 OverlayFS 等),允许独立的“容器”在单个 Linux 实例中运行,从而避免启动和维护虚拟机 (VM) 的开销。它与虚拟机完全不同,移动 docker 映像也很容易,您只需要了解 docker 的工作原理。您还可以使用一些可以编排 docker 容器的编排管理器,例如 Kubernetes,有了它,您可以获得很多好处,管理容器变得更加容易。

相关内容