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

转:https://blog.csdn.net/caoshuming_500/article/details/51682758

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. 1)创建。lxc-create -n cpt -f /lxc/cpt.conf。lxc-create一定要用-f参数指定配置文件,否则创建的容器的配置文件是空的(/usr/local/var/lxc/cpt/config为空)

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

  4.  
  5. 3)停止。lxc-stop –n cpt。

猜你喜欢

转载自blog.csdn.net/caofengtao1314/article/details/52836534