LXC 容器集chroot使用说明
1.1 LXC是什么?
1.1.1 关于LXC
LXC,其名称来自Linux软件容器(Linux Containers)的缩写,一种操作系统层虚拟化(Operating system–level virtualization)技术,为Linux内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库。通过统一的名字空间和共用API来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得Linux用户可以容易的创建和管理系统或应用容器。
图 - lxc官方logo
在Linux内核中,提供了cgroups功能,来达成资源的区隔化。它同时也提供了名称空间区隔化的功能,使应用程序看到的操作系统环境被区隔成独立区间,包括进程树,网络,用户id,以及挂载的文件系统。但是cgroups并不一定需要引导任何虚拟机。
LXC利用cgroups与名称空间的功能,提供应用软件一个独立的操作系统环境。LXC不需要Hypervisor这个软件层,软件容器(Container)本身极为轻量化,提升了创建虚拟机的速度。软件Docker被用来管理LXC的环境。
1.1.2 关于操作系统层虚拟化
操作系统层虚拟化(英语:Operating system–level virtualization),一种虚拟化技术,这种技术将操作系统内核虚拟化,可以允许使用者空间软件物件(instances)被分割成几个独立的单元,在内核中运行,而不是只有一个单一物件运行。这个软件物件,也被称为是一个容器(containers),虚拟引擎(Virtualization engine),虚拟专用服务器(virtual private servers)或是 jails。对每个行程的拥有者与使用者来说,他们使用的服务器程式,看起来就像是自己专用的。
操作系统层虚拟化之后,可以实现软件的即时迁移(Live migration),使一个软件容器中的物件,即时移动到另一个操作系统下,再重新执行起来。但是在这种技术下,软件即时迁移,只能在同样的操作系统下进行。
在类Unix操作系统中,这个技术最早起源于标准的chroot机制,再进一步演化而成。除了将软件独立化的机制之外,内核通常也提供资源管理功能,使得单一软件容器在运作时,对于其他软件容器的造成的交互影响最小化。
1.1.3 LXC的特点
目前的LXC使用下列内核功能来控制进程:
最新文章
- .NET中使用APlayer组件自制播放器
- 让easyui datagrid支持bootstrap的tooltip
- AES 与Base64加密
- Android单元测试实践
- hdu1160 LIS变形
- android genymation eclipse安装
- extjs 简单入门
- html表格 第五节
- CloudStack核心类ApiServlet、ApiServer、ApiDispatcher、GenericDaoBase源码分析
- JS操作JSON的方法总结
- [高并发]EntityFramework之高性能扩展
- FPGA阶段性总结及后续博文计划
- MySQL存储引擎InnoDB与MyISAM的区别
- Graph图总结
- webpack 中版本兼容性问题错误总结
- Flutter的Appbar
- 实力封装:Unity打包AssetBundle(大结局)
- Python 爬虫 --- urllib
- 一张非常强大的OSI七层模型图解。。。
- spring 源码导入eclipse
热门文章
- VS2015 打包winform 安装程序
- .Net Discovery 系列之二--string从入门到精通(下)
- Android 之窗口小部件高级篇--App Widget 之 RemoteViews
- GPG入门教程
- C#编程(六十二)---------LINQ标准的查询操作符
- C#编程(二十九)----------泛型接口
- Android SDK Download List
- 手机端可以和PC端同时在线-java QRCode 实现网站扫码登录(即支持同帐号多设备同时登录)
- BaseControl按钮合集
- 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)