云计算——容器

  • 作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 
  •  座右铭:低头赶路,敬事如仪
  • 个人主页:网络豆的主页​​​​​

前言

本章会讲解云计算中的容器,了解容器的基本作用,核心,组成,以及特点。


一.容器简介

容器:包装或装载物品的贮存器,利用一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任一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容器可以随开随关,很适合动态扩容和缩容。
  • 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

 创作不易,求关注,点赞,收藏,谢谢~