一、虚拟化技术发展概述

在虚拟化技术出现之前,如果搭建一台服务器是这样的:
1、购买一台硬件服务器;
2、在硬件服务器上安装配置操作系统;
3、在操作系统之上配置应用运行环境(JDK、Tomcat、MySQL等);
4、部署并运行应用;(war包)
这种方式的缺点:
1、部署应用非常慢;
2、应用迁移麻烦,要将应用迁移到一台新机器,又需要重来一遍;
所以,随着技术发展,改进了这一问题,出现了虚拟化技术;
虚拟化技术是什么?
虚拟化(英语: Virtualization)是一种计算机资源管理技术,它将计算机的各种硬件资源,比如磁盘、网络、CPU、内存等硬件资源,予以抽象和转换从而呈现出一套新的硬件资源环境,在这一套新的硬件环境下可以安装我们的操作系统,部署我们的应用运行环境等,它打破了计算机硬件资源不可切割的问题,使我们可以更加充分更加合理地利用计算机硬件资源;
虚拟化一般分为:
硬件级虚拟化(hardware-level-virtualization)
操作系统级虚拟化(os-level-virtualization)

硬件级虚拟化 是运行在硬件之上的虚拟化技术,它的核心技术是Hypervisor 发音 [,haipə’vaizə],Hypervisor是一种运行在基础物理服务器硬件之上的软件层,可以虚拟化硬件资源,例如cpu、硬盘、内存、网络资源等,然后我们可以通过在虚拟化出来的资源之上安装操作系统,这也就是所谓的虚拟机,像VMWare, VirtualBox等都是使用该技术;
在这里插入图片描述
通过Hypervisor层,我们可以创建不同的虚拟机,并且每个虚拟机都是隔离独立的,这样一来,我们就可以在一台硬件服务器和操作系统之上虚拟化出多个虚拟服务器,用来部署我们的应用;
虚拟化技术的优点:
一台物理服务器可以虚拟化出多个虚拟的服务器,让计算机资源得以充分利用;
虚拟化技术的缺点:
1、每创建一个虚拟机的时候,都会创建一个操作系统,这个操作系统会占用很多资源,这样无疑大大的增加了资源的消耗,当安装的虚拟机越多,资源消耗就越多;
2、环境兼容性问题,开发时的环境运行正常,部署到虚拟机环境测试则有可能发生异常;
基于硬件级虚拟化技术的缺点和不足,随着技术的发展,后续又发展出来了另一种虚拟化技术,即操作系统级虚拟化技术;

操作系统级虚拟化 是运行在操作系统之上的虚拟化技术,它模拟的是运行在一个操作系统上的多个不同进程,并将其封装在一个密闭的容器里面,该技术也称为容器化技术,在容器化技术领域,Docker 是目前最流行的一种实现;
Docker是什么?
Docker发布于2013 年,基于LXC技术,LXC是Linux 平台上的容器化技术实现;
LXC是Linux Container的简写,它是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,它与宿主机使用同一个内核,性能损耗小,这种技术是Linux提供的,但是直到Docker出世,该技术才被发挥出来;
在这里插入图片描述
Docker创始人Solomon Hykes (Docker之父)
2013年 3月 20 日发布 Docker 0.1;2014 年 6月 9日发布Docker 1.0,1.0 版本标志着 Docker 平台已经足够成熟,并可以被应用到生产产品中(还提供了一些需要付费的支持选项)。
当前Docker的最新版本是19.03.5;

1、Docker 是一个开源的应用容器引擎,它基于 Google 公司推出的 Go 语言实现,项目代码托管在 GitHub 上进行维护;https://github.com/docker/docker-ce
2、Docker技术让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,打包好的容器可以发布到任何流行的 Linux 服务器上运行,这样就可以解决开发环境与运维环境不一致的问题了,所以容器技术解决了开发和运维之间的矛盾,让开发专注于开发,运维专注于运维,不要被环境问题所打扰;

Docker彻底释放了虚拟化的威力,极大降低了计算机资源供应的成本,Docker 重新定义了程序开发测试、交付和部署过程,Docker 提出了“构建一次,到处运行”的理念,让应用的开发、测试、部署和分发都变得前所未有的高效和轻松!

4、Docker是一种轻量级的操作系统虚拟化解决方案,Docker 的基础是 Linux 容器(LXC)技术,在LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单;
Docker 自开源后受到广泛的关注,Docker最早是基于Ubuntu开发的,但后续CentOS、Debian、Fedora等主流的Linux操作系统都支持Docker;

总结:简单地说,Docker是对软件和其依赖环境的标准化打包(集装箱),应用之间相互隔离,共享一个OS Kernel(解决了资源浪费的问题),可以运行在很多主流操作系统上;
但是也需要澄清一下,Docker本身不是容器,Docker只是管理容器的引擎;

容器和虚拟机的区别

容器是将代码和环境的关系打包在一起的一个集合,而虚拟机是在物理层面上,分出来的一个操作系统;

多个容器可以运行在同一台物理服务器上,并共享一个操作系统的内核资源。多个虚拟机也可以运行在同一台机器上,但每个虚拟机都需要一个完整的操作系统;
下图比较了 Docker 和传统虚拟化方式的不同之处:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

为什么使用Docker

作为一种新兴的虚拟化技术,Docker 跟传统的虚拟化方式相比具有众多的优势。
1、Docker容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多;
2、Docker对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器;
3、容器除了运行其中的应用外,基本不消耗额外的系统资源,使得应用的性能很高;传统虚拟机方式运行 10 个完全不同的应用可能我们会起10个虚拟机来部署,而Docker 只需要启动 10 个隔离的应用即可;
4、Docker可以更快速的交付和部署,大量地节约开发、测试、部署的时间,对开发和运维人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行;
5、更高效的虚拟化,Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率;
6、更轻松的迁移和扩展,Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等,这种兼容性可以让用户轻松地把一个应用程序从一个平台直接迁移到另一个平台;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值