白话容器基础(二):隔离与限制

Docker容器最大优势

敏捷、高性能

虚拟机——

  • 本身就占用很大的资源消耗,要有独立的Guest OS;
  • 虚拟机内应用对宿主机操作调用经过虚拟化软件的拦截和处理,性能有损耗;

容器的弊处

隔离不彻底

  • 多个容器之间共享宿主机的系统内核。比如Windows宿主机上运行Linux容器,低版本Linux运行高版本Linux容器都是不可以的
  • Linux内核中,很多资源是不能被Namespace的。比如时间,容器内应用修改了时间,宿主机的时间也会被修改

容器的限制

核心结论:容器只是一个特殊的进程,它与宿主机上的进程竞争资源

Linux Cgroups:Linux Control Groups,进程控制组。

通过Linux Cgroups对容器应用限制资源使用。

  • Linux内核中用来为进程设置资源限制的一个重要功能
  • 主要限制进程使用资源如COU、内存、磁盘、带宽的上限
  • 在系统/sys/fs/cgroup目录下,有可以限制的资源种类

总结

  • 一个正在运行的Docker容器,其实就是一个启用了多个Linux Namespace的应用进程,而这个进程使用的资源量,受Cgroups控制。
  • 容器是一个“单进程”模型
  • 容器本身设计,是想容器和应用是同生命周期的
  • 容器里执行TOP命令,查看的数据来源于宿主机的CPU、内存数据,即/proc
人生的路还很长,继续走吧
原文地址:https://www.cnblogs.com/jinggs/p/14734517.html