1、容器简介
容器是操作系统内核自带能力,容器是操作系统内核自带能力,Docker客户端是一个命令行程序,早已存在,Docker等主要在完善IaaS+能力。
2、Docker容器技术概述
2.1、Docker容器技术概述
Docker 是这个生态系统的基石,但完善的生态系统才是保障 Docker 以及容器技术能够真正健康发展的决定因素;容器生态系统包含核心技术、平台技术和支持技术;
Docker是用于容器管理和分发的引擎,Docker本身是开源的,基于Go语言开发的; Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。
2.2、Docker容器技术主要特点:
- 快:运行时的性能可以获取极大提升;
- 灵活:将应用和系统“容器化”,不添加额外的操作系统,支持跨OS部署;
- 轻便:你会拥有足够的“操作系统”,仅需添加或减小镜像即可;
- 廉价:版本开源的,免费的,低成本的;
- 生态:业界(微软、亚马逊、IBM、Cisco)主流IT厂商逐步使用Docker容器技术;
2.3、Docker容器技术使用场景:
- 简化配置;代码流水线(Code Pipeline)管理;提高开发效率;隔离应用;
- 快速部署;支持多组环境;整合服务器,降低资源成本;
2.4、Docker的核心价值
- 构建标准化(dockerfile);
- 交付形态标准化(容器 & Image);
- 运行环境标准化(Engine);
3、容器技术架构
3.1、Docker技术架构中主要的三大组件:
三大组件主要是客户端、docker daemon和docker registry,其中docker daemon驻留在服务器上,接受并处理对容器的管理请求,而registry则类似于镜像仓库,用于用户的镜像下载和访问;
3.2、Docher技术架构中主要的三大要素:
三个要素是指容器运行的必备要素,分别是container自身,镜像和dockerfile,其中dockerfile是对docker镜像操作的指令集,用于说明如何创建docker镜像,Container和image就是我们常用的容器和镜像本身;
3.3、Docker总体架构
- Docker daemon;Docker registry;
- Libcontainer;Docker container;Graph driver;
- Docker 系统使用 C/S架构;Server 端驻守在后台:docker daemon;
- Docker client通过 REST API 请求 Docker daemon 来管理 Docker 的镜像和容器;
- Docker Client是一个 CLI 程序,在命令行中通过 Docker 二进制文件进行交互;
在命令行中通过命令向docker server发送RESTful的API请求,这样的好处是可以跨平台,并且只要环境支持HTTP协议就行。非常便于在实际的企业网络环境中使用;
4、容器和虚拟化的区别
- 容器是一种轻量化的虚拟化技术虚拟化是重量化;
- 容器没有客户机操作系统这一层,也没有hypervisor这层,而且库函数这层在docker里面是在不同容器应用间共享的,不像传统VM,每个客户机独立有一套库函数;
- 容器应用底层有一个docker引擎,这层主要是作为管理用的,并不像传统的hypervisor那样还参与客户机的实际执行,这点使得docker更加轻量级;
- Docker设计的一个考虑是用户很多时候只是需要高效运行环境,而并不是整个机器,所以像传统虚拟化那样提供完整机器模拟并不需要;
虚拟化技术未来衍生方向:基于轻量级OS + 虚拟化技术;容器技术将会与Hypervisor共存,而不是替换;容器技术给PaaS带来新的活力、蓬勃发展的容器生态系统加速PaaS的发展与实施;
会持续更新;