容器(Containers)是一种创建轻量级虚拟的应用执行环境的技术;基于容器技术,我们可以轻松的在同一个操作系统中构建出多个隔离、虚拟的运行环境,不同于基于虚拟化技术(hypervisor)的硬件级别的隔离方案,容器通过Linux内核中的命名空间(Namespace)以及控制分组(Cgroups)来实现进程级资源如CPU、内存、IO、网络等隔离与管理。目前常见的容器方案有Linux Containers(LXC)与Docker;LXC可以用于进程执行也可以用于启动一个系统镜像(包含rootfs的完整系统执行环境),而Docker一般用于云计算中的应用程序的打包运行。
深入Linux容器文章系列准备分为上下两篇来写,第一篇主要围绕LXC容器的基本实现原理以及如何在ubuntu系统中创建自己的容器;下篇主要从源码的角度分析下LXC是如何实现的。这篇文章,我们着重了解下LXC的实现原理,主要从如下两个方面进行介绍:
首先从
namespace、cgroups两个基本的概念介绍LXC的基本原理基于
Ubuntu系统搭建、启动一个完整的LXC容器
