为什么要使用docker
一个简单的例子
假设用户/开发者试图基于最常见的LAMP(Linux+Apache+MySQL+PHP)组合来搭建一个网站。
按照传统的做法,首先,需要安装Apache /MySQL/PHP以及各自依赖的运行环境
之后需要对他们进行配置(包括创建合适的用户、配置参数)
经过大量的配置之后,还需要对其进行功能测试,查看其功能是否正常,如果不正常,则意味着还需要花更多的时间以及潜在着不可控风险。
如果环境更复杂的话,则花费的时间会更多
但是对docker来说,仅仅docker run一个命令就足够
足以见得有多么快速
docker在开发运维中的优势
- 快速交付部署,docker run等几个简单命令就足够
- 高效资源利用,相比虚拟机,性能高,资源开销少
- 快速迁移、扩展。支持公有云、私有云、个人电脑、服务器,docker支持的平台都可以快速迁移、扩展
- 更新管理快速。镜像统一使用dockerfile配置管理,修改则是增量方式修改,支持自动化
docker与虚拟机的比较
特性 | 容器 | 虚拟机 |
---|---|---|
启动速度 | 秒级 | 分钟级 |
硬盘使用(镜像大小) | MB级 | GB级 |
性能 | 接近系统原生 | 弱于 |
系统支持量 | 单机可达上千容器 | 一般几十个 |
隔离性 | 安全隔离 | 完全隔离 |
安全性 | 差 | 强 |
附录
容器就像骑摩托