1. 什么是虚拟化?
虚拟化是资源的一种逻辑表示,是一种资源管理化技术,并不会受限于物理资源。运行的环境不在真实的硬件上,而是硬件之上的虚拟内存中的一段,或者说是虚拟的环境中。虚拟化为数据、计算能力、存储资源等提供了一个逻辑视图,而不是物理视图。
如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切分的障碍,使用户可以比原本的组态更好的方式来应用这些资源。在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层硬件,从而最大化的利用物理硬件,对资源充分利用。
2. 什么是Docker?
Docker是一个开源的应用容器引擎,诞生于2013年,最初是dotCloud公司内部的一个业余项目,它基于Google公司推出的go语言实现,项目后来加入了linux基金会,遵从了Apache2.0协议,项目代码在GitHub上进行维护。开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或windows或mac上,容器是完全使用沙箱机制,相互之间不会有任何接口。
- Docker是Go语言实现,通过对lxc技术的一个封装
- docker-ce(免费),docker-ee(收费)
- 上手快,简单
- Docker是一个CS架构程序,整套使用RESTful API
- 构建更安全,共享更广泛,运行更快
3. 和传统虚拟机比较
- 启动速度快,体积小
- 依赖简单,与进程无本质区别
- 资源利用率较高
- 不需要虚拟硬件和操作系统
3.docker架构图
Docker非常重要的两个概念:images(镜像)和container(容器)
镜像就是一堆文件
镜像从哪里来?
- 远程仓库拉取
- 自己制作
镜像运行起来叫容器,真正的执行单位是容器