Linux命名空间与容器技术浅谈

前言

本文来谈谈Linux命名空间的机制,以及基于该机制的容器技术是如何实现的。

容器技术

我们如果想共享硬件资源,直接的方法是采用虚拟机技术。每台虚拟机可以分配到一定的硬件资源,有独立的操作系统。有时候,我们还想共享操作系统的内核,在更高的层次实现资源的共享和隔离,这就需要容器技术。

以Linux操作系统为例,如果我们想让不同的进程运行在同一个操作系统上,却能看到和使用不同的系统视图和系统资源,Linux分别提供了两种实现方法:Linux命名空间和Linux控制组(cgroups)。系统视图是指一个进程可以看到的系统相关的信息,如文件、进程、网络接口、主机名等。系统资源则是只具体的硬件资源,如CPU、内存、网络带宽等。

一个容器其实就是对应不同类型资源的命名空间的集合,这个集合构成一个系统视图,也可以将容器视为一种轻量级的虚拟机。想要理解容器,首先要理解Linux命名空间。主流的容器技术如Docker,就是基于Linux命名空间实现的。

cgroups (Linux Control Groups) 也是Linux内核的功能,用来限制一个进程的资源使用量,这使得一个进程不能过分使用资源导致其他进程无资源可用。

Linux命名空间

Linux系统在默认情况下只有一个命名空间,开发者可以创建额外的命名空间来组织不同的资源,形成不同的视图。这里所说的资源指的是操作系统相关的信息(文件、进程、主机等),具体类别如下:

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值