您的位置:首页 > 运维架构 > Linux

linux 容器(LXC) 第1章 LXC 简介

2016-06-15 15:35 253 查看

1.  LXC 基本概念

linuX Contains 是linux 容器,是操作系统级别的虚拟化技术,它可以提供轻量级的虚拟化、以便隔离进程和资源。

容器的隔离

容器有效地将操作系统管理的资源划分到独立的组中,并把各个独立的组进行隔离,可以让各自的组占用独立的资源,完成自己独立的任务。因为容器最终执行的命令也是调用统一的os api 来实现,是基于整个os 来实现的,【所以不需要单独操作系统的编译系统、执行解释器】;一切工作都是基于os 的基础上来完成的。

通过提供一种创建和进入容器的方式,让程序像跑在独立机器那样在容器中运行,并且相互之间不影响,而且还可以共享底层的资源  

  容器的共享
容器提供环境隔离的前提下,还提供了资源共享的机制,所以容器比真正kvm 虚拟机的资源要节省许多;

LXC 的应用
在一台服务器上通过LXC 可以提供多个相互隔离 的server contains 同时运行;LXC 通过chroot 提供独立的进程或者网络环境,用namespace 来实现多个容器环境的隔离,用cgroups 实现对每个容器资源的分配和限制

2. LXC 的三个核心的技术

linux contains 的技术是linux 内核的代码,并非Docker 开发出来的,Docker或者其他的虚拟化容器都是基于LXC 的技术,在基础的lxc 上包了一层代码,让LXC 更简单、更友好,更加好推广;下面就看下LXC 的三个技术

chroot: 创建一个虚拟的根目录文件系统 【实质还是调用底层的文件系统】,不过是简历一个虚拟的,可以跟其他容器的虚拟文件系统相互隔离;但共享底层的文件系统
namespace : 命名空间可以提供一个进程相互隔离的独立网络空间,不同的容器间 进程pid可以相同,进程并不冲突影响;但可以共享底层的计算和存储(cpu + mem)
cgroups: 实现了对容器的资源分配和限制,比如给容器1分配10core 30G 内存;那这个容器最多用这么大的资源;如果内存超过30G ,会启动swap,效率降低,也可能会被调度系统给kill掉

3. Linux 系统上通过LXC 构建容器

构建虚拟跟目录文件系统 【手动模拟chroot的动作】可以在/lxc/contain_name 把linux 操作系统跟目录 下的文件夹都cp 过去
创建容器的配置文件
容器的创建、启动、停止
1)创建。lxc-create  -n  cpt  -f  /lxc/cpt.conf。lxc-create一定要用-f参数指定配置文件,否则创建的容器的配置文件是空的(/usr/local/var/lxc/cpt/config为空)

2)启动。前台启动:lxc-start -n cpt。后台启动:lxc-start -n -d cpt。

3)停止。lxc-stop –n cpt。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: