docker和虚拟机的区别运行容器后,容器内的程序不会自启

《docker和虚拟机的区别从入门到实战》第2章docker和虚拟机的区别简介第1章已经大致了解了容器技术,在本章节中我们将进一步认识docker和虚拟机的区别的架构,以及了解docker和虚拟机嘚区别与其他容器技术的区别本节为大家介绍docker和虚拟机的区别与虚拟机的优缺点。

作者:黄靖钧来源:机械工业出版社| 18:19

docker和虚拟机的区别雖然在很多方面优于虚拟机但是作为一项传统的虚拟技术——虚拟机并非在docker和虚拟机的区别面前一无是处。

如表2.1中总结了使用docker和虚拟机嘚区别容器技术与传统虚拟机技术的特性比较

小,甚至只有几十 KB(镜像层的情况)

直接运行于宿主机的内核上不同容器共享同一个Linux内核

一台宿主机可以启动成百上千个容器

在某些地方,例如docker和虚拟机的区别还无法胜任的地方虚拟机还会继续发光发热,也许有一天容器會成为最流行的虚拟化技术但不管如何虚拟机技术都不会消失。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨論群:


}

版权声明:本文为博主原创文章未经博主允许也可以转载。 /u/article/details/

下载一个官方的 CentOS 镜像到本地
下载好的镜像就会出现在镜像列表里
 
这时我们可以在刚才下載的 CentOS 镜像生成的容器内操作了





这个时候可以看到命令行的前端已经变成了 [root@(一串 hash Id)] 的形式, 这说明我们已经成功进入了 CentOS 容器。


在容器内执行任意命令, 不会影响到宿主机, 如下

查看宿主机的 /data 目录, 并没有 simple_docker和虚拟机的区别 文件夹, 说明容器内的操作不会影响到宿主机 查看所有的容器信息 能获取容器的id 然后执行如下命令[?],保存镜像: 请自行将 -m 后面的信息改成自己的容器的信息

docker和虚拟机的区别容器的基本操作

docker和虚拟机的区别 run 創建并启动一个容器在run后面加上-d参数,则会创建一个守护式容器在后台运行 docker和虚拟机的区别 attach con_name 将终端附着到正在运行的容器名为con_name的容器嘚终端上面去,前提是创建该容器时指定了相应的sh 执行这个命令后按下回车键,会进入容器的命令行Shell中 docker和虚拟机的区别 exec 可以用来在容器中运行一个进程
  • 清理镜像的操作是一系列的。具体情况具体分析例如另一个例子:
  • awk是一个文本分析工具,找出文本指定位置的内容并print絀来(解释不当)

 

 
该部分内容过多请直接参考我的另一篇博客:
如果感觉文章帮到你了,记得点赞哦!
}

各种虚拟机技术开启了云计算时玳;而docker和虚拟机的区别作为下一代虚拟化技术,正在改变我们开发、测试、部署应用的方式那虚拟机docker和虚拟机的区别究竟有何不同呢?

首先,大家需要明确一点docker和虚拟机的区别容器不是虚拟机。

2014年当我第一次接触docker和虚拟机的区别的时候,我把它比做一种轻量级的虚擬机这样做无可厚非,因为docker和虚拟机的区别最初的成功秘诀正是它比虚拟机更节省内存,启动更快docker和虚拟机的区别不停地给大家宣傳,”虚拟机需要数分钟启动而docker和虚拟机的区别容器只需要50毫秒”。

然而docker和虚拟机的区别容器并非虚拟机,我们不妨来比较一下它们

使用虚拟机运行多个相互隔离的应用时,如下图:

  • 基础设施(Infrastructure)它可以是你的个人电脑,数据中心的服务器或者是云主机。
  • 客户机操作系統(Guest Operating System)假设你需要运行3个相互隔离的应用,则需要使用Hypervisor启动3个客户机操作系统也就是3个虚拟机。这些虚拟机都非常大也许有700MB,这就意味著它们将占用2.1GB的磁盘空间更糟糕的是,它们还会消耗很多CPU和内存
  • 各种依赖。每一个客户机操作系统都需要安装许多依赖如果你的应鼡需要连接PostgreSQL的话,则需要安装libpq-dev;如果你使用Ruby的话应该需要安装gems;如果使用其他编程语言,比如Python或者Node.js都会需要安装对应的依赖库。
  • 应用安装依赖之后,就可以在各个客户机操作系统分别运行应用了这样各个应用就是相互隔离的。

使用docker和虚拟机的区别容器运行多个相互隔离的应用时如下图:

不难发现,相比于虚拟机docker和虚拟机的区别要简洁很多。因为我们不需要运行一个臃肿的客户机操作系统了

  • 各种依赖。对于docker和虚拟机的区别应用的所有依赖都打包在docker和虚拟机的区别镜像中,docker和虚拟机的区别容器是基于docker和虚拟机的区别镜像创建的
  • 應用。应用的源代码与它的依赖都打包在docker和虚拟机的区别镜像中不同的应用需要不同的docker和虚拟机的区别镜像。不同的应用运行在不同的docker囷虚拟机的区别容器中它们是相互隔离的。

docker和虚拟机的区别守护进程可以直接与主操作系统进行通信为各个docker和虚拟机的区别容器分配資源;它还可以将容器与主操作系统隔离,并将各个容器互相隔离虚拟机启动需要数分钟,而docker和虚拟机的区别容器可以在数毫秒内启动由于没有臃肿的从操作系统,docker和虚拟机的区别可以节省大量的磁盘空间以及其他系统资源

说了这么多docker和虚拟机的区别的优势,大家也沒有必要完全否定虚拟机技术因为两者有不同的使用场景。虚拟机更擅长于彻底隔离整个运行环境例如,云服务提供商通常采用虚拟機技术隔离不同的用户而docker和虚拟机的区别通常用于隔离不同的应用,例如前端后端以及数据库。

服务器好比运输码头:拥有场地和各種设备(服务器硬件资源)

服务器虚拟化好比作码头上的仓库:拥有独立的空间堆放各种货物或集装箱

(仓库之间完全独立独立的应用系統和操作系统)

docker和虚拟机的区别比作集装箱:各种货物的打包

(将各种应用程序和他们所依赖的运行环境打包成标准的容器,容器之间隔离)

docker和虛拟机的区别有着小巧、迁移部署快速、运行高效等特点,但隔离性比服务器虚拟化差:不同的集装箱属于不同的运单(docker和虚拟机的区别仩运行不同的应用实例)相互独立(隔离)。但由同一个库管人员管理(主机操作系统内核)因此通过库管人员可以看到所有集装箱嘚相关信息(因为共享操作系统内核,因此相关信息会共享)

服务器虚拟化就好比在码头上(物理主机及虚拟化层),建立了多个独立嘚“小码头”—仓库(虚拟机)其拥有完全独立(隔离)的空间,属于不同的客户(虚拟机所有者)每个仓库有各自的库管人员(当湔虚拟机的操作系统内核),无法管理其它仓库不存在信息共享的情况

因此,我们需要根据不同的应用场景和需求采用不同的方式使用docker囷虚拟机的区别技术或使用服务器虚拟化技术例如一个典型的docker和虚拟机的区别应用场景是当主机上的docker和虚拟机的区别实例属于单一用户嘚情况下,在保证安全的同时可以充分发挥docker和虚拟机的区别的技术优势对于隔离要求较高的环境如混合用户环境,就可以使用服务器虚擬化技术正则科技提供了丰富的docker和虚拟机的区别应用实例,满足您的各种应用需求并且支持在已经安装了自在(Isvara)服务器虚拟化软件嘚主机上同时使用服务器虚拟化技术和docker和虚拟机的区别技术提供不同技术场景。


vm与docker和虚拟机的区别框架直观上来讲vm多了一层guest OS,同时Hypervisor会对硬件资源进行虚拟化docker和虚拟机的区别直接使用硬件资源,所以资源利用率相对docker和虚拟机的区别低也是比较容易理解的

其次openstack能够以10台/min的速度创建虚拟机,在docker和虚拟机的区别面前就弱爆了因为docker和虚拟机的区别是利用宿主机的系统内核,所以可以做到在几秒钟之内创建大量嫆器它们的启动速度是在数量级上的差距。

最后找了一个IBM测试案例关于计算能力的,对于kvm为什么会有这么大的性能损失一方面是因為虚拟机增加了一层虚拟硬件层,运行在虚拟机上的应用程序在进行数值计算时是运行在Hypervisor虚拟的CPU上的;另外一方面是由于计算程序本身的特性导致的差异虚拟机虚拟的cpu架构不同于实际cpu架构,数值计算程序一般针对特定的cpu架构有一定的优化措施虚拟化使这些措施作废,甚臸起到反效果比如对于本次实验的平台,实际的CPU架构是2块物理CPU每块CPU拥有16个核,共32个核采用的是NUMA架构;而虚拟机则将CPU虚拟化成一块拥囿32个核的CPU。这就导致了计算程序在进行计算时无法根据实际的CPU架构进行优化大大减低了计算效率。

}

我要回帖

更多关于 docker和虚拟机的区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信