1.1 什么是Docker
Docker是基于Go语言实现的开源容器项目,官方网站为www.docker.com,现在主流的操作系统包括LInux各大发行版、Windows等都支持Docker。
Docker的构想是实现“Build, Ship and Run Any App, Anywhere",一次封装,到处运行。
1.2 为什么要使用Docker
1)Docker容器虚拟化的好处: 通过容器来打包应用、解耦应用和运行平台。
2)Docker在开发和运维中的优势:
- 更快速的交付和部署
- 更高效的资源利用
- 更轻松的迁移和扩展
- 更简单的更新管理
3)Docker与虚拟机比较
- 启动和停止实现秒级
- 对系统资源需求很少
- 通过类似Git操作来方便用户获取、分发和更新应用镜像,存储复用和增量更新
- 通过Dockerfile支持灵活的自动化创建和部署机制,以提高工作效率,并标准化流程
1.3 Docker与虚拟化
虚拟化的核心是对资源的抽象,目标是为了在同一个主机上同时运行多个系统或应用,从而提高系统资源的利用率,带来降低成本,方便管理和容错容灾等好处。
虚拟化技术可分为硬件虚拟化和软件虚拟化。 软件虚拟化又分为应用虚拟化和平台虚拟化。
平台虚拟化又分为:
完全虚拟化: 虚拟机模拟完整的底层硬件环境和特权指令的执行过程。如VMware Workstation、VirtualBox
硬件辅助虚拟化: 利用硬件(主要是CPU)辅助支持处理敏感指令来实现完全虚拟化的功能。如Intel-VT, AMD-V
部分虚拟化: 只针对部分硬件资源进行虚拟化,客户操作系统需要进行修改。
超虚拟化: 部分硬件接口以软件的形式提供给客户机操作系统
操作系统虚拟化:内核通过创建多个虚拟的操作系统实例来隔离不同的进程。如容器相关技术,Docker