docker可以作为虚拟机吗

虚拟机 2024-07-02 21:31:52
I、docker相当于一个Linux上虚拟机吗?可以在docker上放置网站,提供外部访问吗目前,Docker内部使用Linux容器技术(LXC),与其主机运行在同一操作系统上。 这使得它可以与主机共享许多系统资源。 它还将使用AuFS作为文件系统并为您管理网络。
AuFS是一个分层文件系统,因此您可以拥有只读部分和只写部分,然后将两者结合起来。 您可以将系统的公共部分设置为只读,该部分由所有容器共享,并为每个容器提供自己的可写区域
Mitisky
翻译于3年前
3个赞
翻译得很好!
好吧,我们假设你有一个容量为1GB的容器镜像(image)。 如果你想用完整的虚拟机来挂载它,你需要的大小是1GB乘以你需要的虚拟机的数量。 。 但使用Linux容器虚拟化(LXC)和AuFS,你可以共享1GB的容量,如果你需要1000个容器,假设它们都运行在同一个系统镜像上,你仍然可以使用略多于1GB的空间。 容器系统,
一个完整的虚拟化系统拥有分配给它自己的所有资源,只有很少的共享。 您获得了更多的隔离性,但它很笨重(需要更多的资源)
使用Linux容器虚拟化技术(LXC),隔离性消失了,但它们更轻量级并且需要更少的资源。 因此,您可以轻松地在主机上运行1000个容器,甚至无需眨眼。 尝试使用Xen来做到这一点,我认为这是不可能的,除非你有一个超级强大的主机
Mitisky
3年前翻译
2人丁
丁丁翻译得好!
一个完整的虚拟系统通常需要几分钟才能启动。 Linux容器虚拟化技术(LXC)只需要几秒钟,有时甚至更短。
对于每个虚拟系统,都有反对者和支持者。 如果您想要一个完全隔离且资源有保障的环境,那么完整的虚拟机是您的选择。 如果您只是希望进程彼此隔离并希望在大小合理的主机上运行大量进程。 那么Linux容器虚拟化技术(LXC)就是您的选择。

II、什么情况下不适合使用Docker虚拟化技术?在大型项目中,不推荐使用Docker的主要原因有:
1.镜像管理难度:随着应用数量的增加,需要管理的镜像数量也会随之增加,如果没有良好的实践经验,很容易出现版本管理、镜像大小、安全等问题。
2.共享文件夹可能会导致超出资源限制:Docker允许主机和容器之间共享文件夹,这可能会导致容器超出资源限制并对主机进行任何更改。 尽管许多虚拟机系统实际上共享物理主机和虚拟机之间的资源边界,但这层安全性需要用户自己控制。
3.安全问题:Docker启动的容器默认只使用部分内核能力,因此即使攻击者获得了容器内的root权限,也能造成较小的破坏,并且无法获得主机上的更高权限。 但需要注意的是,使用非root权限允许进程在容器中运行。
总之,对于大型项目,使用Docker可能会带来一些挑战和问题。 但对于快速开发、向开发者交付应用等关键应用场景,Docker仍然是一个安全有效的选择。