Docker容器技术与高可用实战
上QQ阅读APP看书,第一时间看更新

1.1 Docker概述

Docker(其Logo见图1.1)以其轻便、快速的特性,可以使应用快速迭代。在Docker中,每次小的变更,马上就能看到效果,而不用将若干个小变更积攒到一定程度再变更。每次变更一小部分其实是一种非常安全的方式,在开发环境中能够快速提高工作效率。

图1.1 Docker产品的Logo

Docker容器能够帮助开发人员、系统管理员、质量管理和版本控制工程师在一个生产环节中协同工作。制订一套容器标准能够使系统管理员在更改容器的时候,不需要程序员关心容器的变化,只需他专注于自己的应用程序代码即可。这样做的好处是隔离了开发和管理,简化了开发和部署的成本。

1.什么是Docker

如果要方便地创建运行在云平台上的应用,必须脱离底层的硬件,同时需要在任何时间、地点都可获取这些资源,而这正是Docker所能提供的。Docker的容器技术可以在一台主机上轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器。通过这种容器打包应用程序,简化了重新部署、调试等琐碎的重复工作,极大地提高了工作效率。

请扫描二维码观看视频讲解。

什么是Docker

2.Docker的优势

Docker容器运行速度很快,可以在秒级实现启动和停止,比传统虚拟机要快很多。Docker解决的核心问题是利用容器来实现类似虚拟机的功能,从而利用更少的硬件资源给用户提供更多的计算资源。Docker容器除了运行其中的应用之外,基本不消耗额外的系统资源,在保证应用性能的同时,减小了系统开销,这使得一台主机上同时运行数千个Docker容器成为可能。Docker操作方便,通过Dockerfile配置文件可以进行灵活的自动化创建和部署。表1-1将Docker容器技术与传统虚拟机的特性进行了比较。

表1-1 Docker容器技术与传统虚拟机的比较

Docker之所以拥有众多优势,与操作系统虚拟化自身的特点分不开。传统虚拟机需要有额外的虚拟机管理程序和虚拟机操作系统层,而Docker容器是直接在操作系统层面之上实现的虚拟化。图1.2是Docker与传统虚拟机架构的对比。

图1.2 Docker与传统虚拟机架构的对比

3.镜像

镜像、容器、仓库是Docker的三大核心概念。其中,Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向Docker容器引擎的只读模板。例如,一个镜像可以是一个完整的CentOS操作系统环境,称为一个CentOS镜像;也可以是一个安装了MySQL的应用程序,称为一个MySQL镜像,等等。

Docker提供了简单的机制来创建和更新现有的镜像,用户也可以从网上下载已经创建好的镜像直接使用。

4.容器

Docker的容器是从镜像创建的运行实例,它可以被启动、停止和删除。每一个容器都是相互隔离、互不可见的,以保证平台的安全性。可以将容器看作是一个简易版的Linux环境,Docker利用容器来运行和隔离应用。

5.仓库

Docker仓库是用来集中保存镜像的地方。当开发人员创建了自己的镜像之后,可以使用push命令将它上传到公有(Public)仓库或者私有(Private)仓库。下次要在另外一台机器上使用这个镜像时,只需从仓库获取即可。

仓库注册服务器(Registry)是存放仓库的地方,其中包含多个仓库。每个仓库集中存放一类镜像,并且使用不同的标签(tag)加以区分。目前最大的公共仓库是docker Hub,它存放了数量庞大的镜像供用户下载使用。