- 作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。
- 座右铭:低头赶路,敬事如仪
- 个人主页:网络豆的主页
前言
本章会讲解云计算中的容器,了解容器的基本作用,核心,组成,以及特点。
一.容器简介
容器:包装或装载物品的贮存器,利用一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任一Linux或Windows机器上,也可以实现虚拟化。相互之间不会有任何接口,实现APP与操作系统的解耦。
镜像是可执行的独立软件包,包含软件运行的内容:代码,运行时环境,系统工具,系统库和设置。(容器就是将OS上层的应用进行了隔离)
二.主流容器技术
1.docker
定义:Docker属于Linux容器的一种封装,提供简单易用的容器使用接口,他是目前最Linux的Linux容器解决方案。
作用:将应用程序与该程序的依赖,打包在一个文件里。运行这个文件,就会生成一个虚拟容器,程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。
核心:实现应用与运行环境整体打包及打包格式统一。
(1)容器的组成
一个完整的Docker有以下几个部分组成:
- 客户端(Docker Client)电脑,桌面
- 守护进程(Docker Daemon)等待接受客户端消息,可执行命令
- 镜像(Docker image)创建docker的容器
- 容器(Docker Container)镜像的实例,容器包含在镜像中,容器是镜像的子系统
- 仓库(Docker Registry)存储镜像
(2)容器特点
容器本质上是一款轻量级虚拟化技术
- 用户需要高效运行环境,而非整个机器
- 一次构建,到处运行
- 部署方便(创建的速度快,秒级)
- 隔离性好
- 成本低
2.容器和虚拟化区别
虚拟化 | 容器 |
---|---|
隔离性强,有独立的GUEST OS | 共享内核和OS,隔离性弱 |
虚拟化性能差(>15%) | 计算/存储无损耗,无GuestOS内存开销(~200M) |
虚拟机镜像庞大(十几G~几十G),且实例化时不能共享 | Docker容器镜象200~300M,且公共基础镜象实例化时可以共享 |
虚拟机镜象缺乏统一标准 | Docker提供了容器应用镜象事实标准,OCI推动进一步标准化 |
虚拟机创建慢(>2分钟) | 秒级创建(<10s)相当于建立索引 |
虚拟机启动慢(>30s)读文件逐个加载 | 秒级(<1s,不含应用本身启动) |
资源虚拟化粒度低,单机10~100虚拟机 | 单机支持1000 容器密度很高,适合大规模的部署 |
3.什么时候适合用虚拟化,什么时候适合容器
- 要求比较高的环境推荐使用虚拟化,有独立的客户操作系统
- 应用环境低的使用容器
4.容器的应用场景
Docker的主要用途,目前有三大类。
- 提供一次性的环境,比如,本地测试他人的软件,持续集成的时候提供单元测试和构建的环境。
- 提供弹性的云服务,因为Docker容器可以随开随关,很适合动态扩容和缩容。
- 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。
创作不易,求关注,点赞,收藏,谢谢~