虚拟机已死,容器才是未来。那么,容器(以Docker为例),凭什么取代虚拟机?Docker和虚拟机又有哪些区别,Docker又有哪些优势呢?
Docker和虚拟机的区别
作为一种轻量级的虚拟化方式,Docker在运行应用上跟传统的虚拟机方式相比具有显著优势。
安装Docker
Docker支持在主流的操作系统平台上使用,包括Ubuntu、CentOS、Windows以及MacOS系统等。当然,在Linux系列平台上是原生支持,使用体验更好。以下是Docker支持部分系统的截图。
安装过程就不在多述,官网有详细介绍https://www.docker.com/community-edition。
Docker的三大核心概念,镜像(Image)、容器(Container)、仓库(Repository)。
三者之间的关系可以由上图看出,简单总结起来仓库是存放镜像的,把镜像启动起来后就是容器。
镜像(Image)
Docker镜像(Image)类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模板,镜像是创建Docker容器的基础。通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并通过简单的命令就可以直接使用。
官方的镜像仓库地址:https://hub.docker.com。
容器(Container)
Docker容器(Container)类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例,可以将其启动、开始、停止删除,而这些容器都是相互隔离、互不可见的。简单地说,容器是镜像的一个运行实例,所不同的是,它带有额外的可写文件层。
仓库(Repository)
仓库(Repository)是集中存放镜像的地方。一个容易与之混淆的概念是注册服务器(Registry)。实际上注册服务器是存放仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。仓库又分公共仓库和私有仓库。
Docker能改变什么?总结起来有以下几个方面。
更高效的利用系统资源。相较于虚拟机docker容器的性能更好,能起更多的应用。
一致的运行环境。开发、测试、在线确认、在线的运行环境可以保持一致都统一存储为镜像,在不同的环境运行相同的镜像即可,可以保证各个阶段应用运行环境的一致性。
持续交付和部署。由于各个运行环境的一致性,使得自动化测试环境更加方便快捷,持续交付和部署也变的更加便捷。
更轻松的迁移系统。因为应用运行的依赖环境都在docker容器内,所以进行系统迁移,从一个环境迁移到另外一个环境,更加方便和快捷,只需将镜像文件拷贝到对应的环境,启动起来即可。不在需要繁琐的配置各种依赖的软件及系统版本,使得迁移更加高效顺畅。
领取专属 10元无门槛券
私享最新 技术干货