title | date | tags |
---|---|---|
What is Docker
|
2019-07-07 10:28:23 -0700
|
容器
容器到底是什么?
容器是基于image(镜像)运行的"隔离"环境,相同容器可以并存在同一服务器上;在底层系统一致的情况下,能够快速启动服务、保障服务可用性;
更简单的说,容器好比运输车(Container);车内可以装同一类的(Image)物品(快递/石油/泥沙);装有石油的两辆车可以同时在一条航线(内核)行驶,装有不同物品的车也是如此互不干扰;
如何运行容器?
其实上面的例子已经告诉了大家,运行容器我们需要一个操作系统、镜像、docker服务
- Ubuntu/Centos/Windows目前都支持
- 镜像:使用Dockerfile定义镜像内容包含代码、运行环境所需的依赖软件,打包成一个标准单元;
- Docker服务:配合镜像运行容器的载体;
Docker是什么?
- Docker是运行容器化环境的载体,目前是世界比较领先的容器平台;
- 由Go开发的一款基于Linux内核cgroup、namespace及AUFS类的UnionFS等技术对进程进行封装隔离,从操作系统层进行虚拟化;
- 能够启动重复服务,快速构建开发、测试、预上线多类环境;
- 标注化单元,使得启动的容器具有服务唯一性,在交付过程中能够快速回滚到可用版本;
- 能够在短时间内拉起服务(秒、甚至毫秒级别);
- 能够从一个平台上运行的应用迁移到另一个平台上,且不用担心运行环境无法正常运行的情况;
- 在接口遇到突泉式增长时能够自动伸缩缓解服务承载能力
可能了解虚拟化的朋友看到这里就又些疑惑了,以上功能似乎和大多云厂商用的虚拟化没什么区别呀!
没错,但你只说对了一半,接下来我们针对传统方式、虚拟化、容器化进行对比;
传统Vs虚拟化Vs容器化
话不多说,先上图表�
部署场景 | 依赖 | 服务可部署数量 | 启动时间 | 硬盘使用 | 性能 |
---|---|---|---|---|---|
传统 | 操作系统 | 因服务而定 | --- | ALL | 原生 |
虚拟化 | 虚拟产品 | 几十个 | 分钟级 | GB | 弱于 |
容器化 | Docker | 上千个 | 秒级 | MB | 接近 |
同等资源的机器上,容器的优势不要太强,这就是为什么容器化在业务场景上使用更优于虚拟化,当然虚拟化有的好处是容器目前没做到的(根据用户进行隔离)而容器化是基于不同应用进行的隔离