CSDN话题挑战赛第2期
参赛话题:万家争鸣的云计算修罗场
我想分享的云计算技能/知识点
容器技术与Docker
该技能/知识点的背景介绍
如果说エ业上的集装箱是从ー个箱子开始的,那么软件行业上的容器则是从文件系统隔离开始 的。说到容器技术,最早的容器技术大概是chroot ( 1979年)了,它最初是UNIX操作系统上的ー 个系统调用,用于将一个进程及其子进程的根目录改变到文件系统中的一个新位置,让这些进程只 能访问该目录。直到今天,主流的Linux ±还有这个工具。
我们可以打开ー个终端,输入chroot -help查看一下这个古老的命令: user@ops-adniin:~user@ops-admin:-$ chroot --help
用法:chroot [选项]新根[命令[参数!...]
或:chroot选项
以指定的新根为运行指定命令时的根目录。
--userspec=用户:组
―groups=^列 表
ーーhelp
--version .
If no command is given,
请向 bug-coreuti1s@gnu.org 报告 chroot 的错误
GNU coreutils 的主页:<Coreutils - GNU core utilities>
GNU 软件一般性帮助:くhttp://www.gnu.org/gethe1p/>
要获取完整文档,请运行:info coreutils ' chroot invocation *
chroot这个命令主要是用来把用户的文件系统根目录切换到指定的目录下,实现简单的文件系 统隔离。可以说chroot的出现是为了提高安全性,但这种技术并不能防御来自其他方面的攻击,黑 客依然可以逃离设定、访问宿主机上的其他文件。
该技能/知识点实际运用
容器技术的发展
在 2000 年,由 R&D Associates 公司的 Derrick T. Woolworth 为 FreeBSD 引入的 FreeBSD Jails 成 为了最早的容器技术之一,与chroot不同的是,它可以为文件系统、用户、网络等的隔离增加了进 .程沙盒功能。因此,它可以为每个jail指定1P地址、可以对软件的安装和配置进行定制,等等。
紧接着出现了 Linux VServer,这是另外一种jail机制,它用于对计算机系统上的资源(如文件 系统、CPU处理时间、网络地址和内存等)进行安全地划分。每个所划分的分区叫作一个安全上下 文(security context),在其中的虚拟系统叫作虚拟私有服务器(virtual private server, VPS )〇
后来在2004和2005年分别出现了 Solaris Containers和〇penVZ技术,在可控性和便捷性上更 胜一筹
总结
时间来到2006年,Google公开了 Process Containers技术,用于对一组进程进行限制、记账、 隔离资源的使用(CPU、内存、磁盘I/O、网络等)。为了避免和Linux内核上下文中的“容器” 一 词混淆而改名为Control Gro叩s。2007年被合并到了 LinuX 2.6.24内核中。
在前面的Cgro叩s (即Control Gro叩s )等技术出现以后,容器技术有了更快的发展