Docker容器相关技术简介(Docker依赖于linux内核的两个重要特性)

了解这两个特性能够更好的理解docker的资源分配和管理

1、NameSapces 命名空间

很多编程语言都包含了命名空间的概念,我们可以认为命名空间是一种封装,封装本身实际上实现了代码的隔离,

在操作系统中命名空间命名空间提供的是系统资源的隔离,其中系统资源包括了:进程、网络、文件系统......

实际上linux系统实现命名空间主要目的之一就是为了实现轻量级虚拟化服务,也就是我们说的容器,在同一个命名空间下的进程可以感知彼此的变化,而对其他命名空间的进程一无所知,这样就可以让容器中的进程产生一个错觉,仿佛他自己置身于一个独立的系统环境当中,以此达到独立和隔离的目的。

2、Docker命名空间的种类:

PID(ProcessID):进程隔离

NET(Network):管理网络接口

IPC(InterProcess Communication):管理跨进程通信的访问

MNT(Mount):管理挂在点(文件系统相关的隔离)

UTS(Unix Timesharing System):隔离内核和版本标识

这些隔离是怎么管理起来的呢?那么就需要用到Control groups控制组

3、Control groups(cgroups) 控制组

一种linux内核提供的一种可以限制、记录、隔离进程组所使用的理资源的机制。为容器而生,没有cgroups就没有今天的容器技术。

资源限制:如外面的子系统可以进程组设置一个内存使用的上限,一旦进程组使用的内存达到了限额,那他再申请内存就会发出内存用完的消息

优先级设定:他可以设定哪些进程组使用更大的cup,或者是磁盘IO的资源

资源计量:他可以计算出进程组使用了多少资源

资源控制:他可以将进程组挂起和恢复

带给docker的能力:

文件系统的隔离:每个容器都有自己的root文件系统

进程的隔离:每个容器都运行在自己的进程环境中

网络隔离:容器间的虚拟网络接口和IP地址都是分开的

资源的隔离和分组:使用cgroups将CPU和内存之类的资源独立分配给每个Docker容器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值