1. 什么是docker
docker是基于go语言实现的开源容器项目,诞生于2013年,它采用容器虚拟化技术,对应用的开发,测试,部署,运行生命周期进行管理,达到应用组件级别的"一次封装,到处运行".
2. docker的三大核心概念
-
镜像
类似于虚拟机镜像,可以理解为一个只读的模板,包含一个基础的操作系统环境
-
容器
类似于一个轻量级的沙箱,用于运行和隔离应用
-
仓库
类似于代码仓库,是存放镜像的场所
3. 为什么要用docker
-
更快速的交付和部署
开发人员可以使用docker快速构建一套开发环境,开发完成后,测试人员可以使用镜像用与开发环境相同的环境进行测试,测试完成后,运维人员构建生产环境无缝运行.docker可以快速创建删除容器,实现快速迭代,节约项目开发时间
-
更高效的资源利用
docker是内核级的虚拟化,可以实现更高的性能,对资源的额外需求很低
-
更轻松的迁移和扩展
docker镜像提供了除内核外完整的运行时环境,确保了应用运行环境的一致性,从而使docker容器几乎在任意平台可以运行
-
更简单的更新管理
使用dockerfile进行应用配置,已增量的方式进行更新,代替以往大量的更新工作
4. docker容器技术与传统虚拟机技术的区别
特性 | 容器 | 虚拟机 |
---|---|---|
启动速度 | 秒级 | 分钟级 |
性能 | 接近原生 | 较弱 |
内存代价 | 很小 | 较多 |
硬盘使用 | 一般为MB | 一般为GB |
运行密度 | 单机支持上千个容器 | 一般为几十个 |
隔离性 | 安全隔离 | 完全隔离 |
迁移性 | 优秀 | 一般 |