我明白了VM和容器之间的巨大区别。但这让我对Ubuntu容器如何存在感到困惑。这对我来说很矛盾,因为Ubuntu是一个操作系统。
https://hub.docker.com/_/ubuntu
这不是一个完整的来宾OS吗?那么是什么使它成为VM上的容器呢?还是容器和VM之间的界限模糊了?
我试着在谷歌上搜索这个,但我找到的结果只是经典的VM vs容器的答案,这不是我真正想问的,我不认为。
编辑-我已经更新尝试进一步澄清我的问题。
Docker是一种在隔离的轻量级容器中运行应用程序的新方法。即使它们是隔离的,它们也可以与其他组件集成。
效率并不是唯一的收获。当您将应用程序打包在Docker中运行时,您就获得了可移植性。您可以在笔记本电脑上的Docker容器中运行应用程序,它在数据中心的服务器上和任何云中的虚拟机(VM)上的行为都将完全相同。
另一个很大的动力是安全。容器增加了应用程序之间的安全隔离,因此您可以确信,如果一个应用程序受到危害,攻击者就无法继续危害同一主机上的其他应用程序。
当您将应用程序打包为Docker映像时,它们都具有相同的形状--您可以以相同的方式部署、管理、保护和升级它们。
要回答您的问题:
>
每个docker容器都运行自己的轻量级VM,因此常规VM之间的界限是模糊的,除了docker容器并不像常规VM那样用于GUI应用程序。
你假设错了。您需要在Dockerfile中包含一个OS,然后再包含应用程序代码。但是,根据应用程序的不同,Docker Hub上存在不同大小的OS映像,如windows nanoserver,如果您只有一个想要运行的简单控制台应用程序。那么您就不需要一个带有完整操作系统的VM。您可以做的另一件事是在您的dockerfile中运行分段构建,它将编译您的应用程序,并且仅将运行时环境包含在您的映像中,从而有效地减小它的大小。
Docker主要用于dockerrize新的和遗留的应用程序,这意味着将它们拆分到逻辑分离的容器中。当一个应用程序被Dockerized时,它会获得诸如安全性、依赖性分离、零停机维护、持续集成管道、可移植性、效率等好处。你不能使用常规的VM来容器化一个应用程序。docker容器和常规VM的目的和构建是不同的。
如果您正在使用windows容器以更好地了解Docker的用途,我可以推荐以下书籍:https://www.packtpub.com/virtualization-and-cloud/docker-windows
如果没有,那么packt还提供了其他关于Linux上docker的书籍。
我希望这回答了你的问题:)
我找不到合适的解释。我可以找到JVM被称为虚拟机的原因,但无法找到jre不被称为虚拟机的原因。请帮忙。
简单地说,虚拟机(Virtual Machine)就是允许我们在当前操作系统中运行其他操作系统的软件,本质上和 VS、QQ 这些应用程序一样。 所以,只要我们在电脑(PC 或笔记本等)上安装好虚拟机软件,就可以模拟出来若干台相互独立的虚拟 PC 设备,每一个都如何一台真实的计算机。在此基础上,我们可以给每台虚拟的 PC 设备安装指定的操作系统,这样就可以实现在一台电脑上同时运行多个操作系统。 另外
VMware虚拟机nat模式,虚拟机可以和宿主机互通,外网也通,路由器能ping通宿主机,但是ping不通虚拟机和宿主机的VMnet8网卡地址怎么回事? 宿主机IP:192.168.2.85 虚拟机IP:192.168.2.100 VMnet8网卡IP:192.168.2.9 路由器能ping通192.168.2.85,但是2.100和2.9ping不通
本文向大家介绍什么是虚拟DOM?相关面试题,主要包含被问及什么是虚拟DOM?时的应答技巧和注意事项,需要的朋友参考一下 虚拟 dom 是相对于浏览器所渲染出来的真实 dom 的,在react,vue等技术出现之前,我们要改变页面展示的内容只能通过遍历查询 dom 树的方式找到需要修改的 dom 然后修改样式行为或者结构,来达到更新 ui 的目的。 这种方式相当消耗计算资源,因为每次查询 dom 几
从我读到的和听到的关于Docker的所有内容来看,它的全部意义在于封装一个应用程序,使其能够在任何机器上运行。它通过将所需的环境(工具/依赖项)包装到docker映像中来实现这一点。容器是映像的实例。没有操作系统运行在docker容器中。 现在,如果这都是真的,那么为什么存在这个:CentOS官方docker映像?我以为docker映像只是应用程序的映像,而不是整个操作系统的映像。 每当我实例化该
在Azure中,有2个选项可用于创建虚拟机。A、 普通VM B.经典VM 有人知道这两种选择有什么区别吗?我们什么时候使用一个而不是另一个?