Docker初识
1.1 什么是Docker
Docker是由dotcloud公司在2013年开源的基于go语言实现的开源项目。Docker遵循Apache2.0协议,可以在git上获取相应的源代码。Docker的主要目标是“Build ship and run any app,Anywhere”,达到应用组件级别的“一次封装,到处运行”,这里的应用组件既可以是Web应用也可以是一套数据库服务,甚至是一个操作系统。
1.2 容器
容器有效的将由单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组件平衡有冲突的资源使用需求。Docker容器可以理解为一种沙盒,每个容器内运行一个应用,不同的容器相互隔离,容器之间也可以建立通信机制容器的创建和停止都十分快速,容器自身对资源的需求也十分有限,远低于虚拟机。
1.3 Docker在开发和运维中的优势
1)更快的交付和部署。开发人员可以使用镜像来快速构建一套标准的开发环境;开发完成后,测试和运维人员可以直接使用相同的环境来部署代码。
2)更高效的利用资源。Docker是内核级的虚拟化,可以实现更高的性能
3)更轻松的迁移。Docker容器可以运行在任意平台上
4)更简单的更新。使用Dockerfile,只需要小小的配置修改
5)Docker属于操作系统级虚拟化,内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程。
特性 | 容器 | 虚拟机 |
启动速度 | 秒级 | 分钟级 |
硬盘使用 | 一般为M | 一般为G |
性能 | 接近原生 | 弱于 |
系统支持 | 单机支持上千个容器 | 一般几十个 |
隔离性 | 安全隔离 |