1.Docker简介

(1).引入

我们之前学习了EXSI,对于虚拟化技术有所了解,但是我们发现类似于EXSI这样比较传统的虚拟化技术是存在着一定的缺陷:所占用的资源比较多,简单的说,就是你需要给每一个用户提供一个操作平台,这一个操作平台就会占用你的资源。这样资源的浪费是比较多的。

为了解决类似的资源使用效率不高的情况,容器技术横空出世。

举例现实生活中的例子,帮助理解

(2).容器技术

Docker是PAAS提供商 dotCloud 开源的一个基于 LXC (Linux Container)的高级容器引擎,源代码托管在Github上, 基于go语言并遵从Apache2.0协议开源。

Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

–举例实现生活着中的例子。帮助理解。

2.Docker架构

Docker架构中,一般包含三个基本的架构:镜像容器仓库。下面我们一起来看看如何理解这三个内容。

(1).镜像(Image)

我们接触第一个镜像是在学习linux中的镜像文件,通过镜像文件,我们可以搭建一个Linux的运行平台。这里的镜像就可以理解为是Docker提供的封装好的运行环境

(2).容器(Container)

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

这里这样理解:容器是镜像的一个具体实例,就像张三是学生对象的一个具体实例一样。就像我们可以使用CenteOS镜像去创造一个名叫”bigData”的具体操作系统一样。

(3).仓库

仓库可看成一个代码控制中心,用来保存镜像。

其他组成:

Docker 客户端(Client):Docker 客户端通过命令行或者其他工具使用 Docker API与 Docker 的守护进程通信

Docker 主机(Host): 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器