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 守护进程和容器。