Docker:
Docker:基于Linux container,采用Go语言,遵循apache2.0协议的开源管理引擎
Docker 的诞生
1、Docker 是 dotcloud 公司开源的一款产品 dotcloud 是 2010 年新成立的一家公司,主要基于 PAAS ( Platfrom as a Service ) 平台为开发者提供服务
2、2013 年 10 月 dotcloud 公司改名为 Docker 股份有限公司
Docker 的发展历程
1、Linux Container (LXC) 是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源
2、Docker 是 PAAS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于 go 语言并遵从 Apache2.0 协议开源
3、Docker 设想是交付运行环境如同海运,OS 如同一个货轮,每一个在 OS 基础上的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造
Docker分类:
公有云的提供方式:基础设施即服务(IAAS)、平台即服务(PAAS)、软件即服务(SAAS)
Docker 与传统虚拟化对比
传统虚拟化中,应用程序互相访问,需要经过lib库–虚拟机–虚拟层–另一台虚拟机–lib库–目标应用程序;Docker中,应用程序访问更容易。(多个应用程序可共用lib库)
缺点:安全性相对较低;
Docker 的构成
1、Docker 仓库: https://hub.docker.com
2、Docker 自身组件
Docker Client:Docker 的客户端
Docker Server:Docker daemon 的主要组成部分,接受用户通过 Docker Client 发出的请求,并按照相应的路由规则实现路由分发
Docker 镜像:Docker 镜像运行之后变成容器(docker run)
Docker 三要素
仓库:存储 / 存储 ISO 镜像的 web 服务器
镜像:ISO 镜像
容器:虚拟机
Docker 组件的构建方式
Docker的存在方式及优化
Docker 化应用存在的方式-1
Docker 化应用存在的方式-2
减轻两个操作系统的资源消耗;
但缺点是两个应用同时依赖于一个操作系统,安全性降低
Docker 化应用存在的方式-3
Docker 化应用存在的方式-4
引入空白层,空白层的优先级更高,它以下的操作会被空白层覆盖;
从而实现了使用同一个镜像,得到不同的运行结果
Docker 化应用存在的方式-5
镜像重用:将镜像切分成不同的块,一个完整的镜像是由不同的层级结合到一起的,层级相同,只需要在另一方引用即可,不需要再存储