1 什么是Linux的容器(LXC--LinuX Container)?
1.1虚拟化与容器的区别
image.png
1.2 容器发展之路
容器技术最早出现在FreeBSD上叫做 jail,将一个进程放入jail中运行,不管这个进程在其中发生怎样的错误都不会影响到系统上其他进程的运行。 后来,jail技术在Linux中的实现叫做vserver,vserver所实现的功能体现为chroot以及namespaces实现资源的隔离。 容器技术出现的主要目的是为了"资源隔离"
image.png
Linux在内核中通过namespaces,原生支持6种资源隔离,并且直接通过系统调用对外进行输出。另外,仅靠namespaces,就可以完成容器的功能吗?对,我们还需要靠CCgroups 控制每个namespace中的资源分配。
vserver技术的chroot与namespace、cgroup已经可以实现完全的隔离了,容器技术已经成熟了,但是为什么当时没有流行起来呢?
隔离的工具chroot与namespace、cgroup是有了,但是要把这些工具组合使用需要非常深厚的代码开发的功底才能实现。这限制了他的使用人群。直到LXC技术出现。
1.3 LXC到Docker的历史
LXC,将原来需要手工编码实现的容器技术,进行了封装。实现了,更加方便、快速的容器创建及管理的技术。通过固有“模板”,安装并启动容器。将远程的程序包下载到本地,安装并创建好我们需要的容器。
确实,LXC已经很大程度上降低了容器管理的难度,但是依然使用一些弊端。有些时候可能需要自定制模板,以及使用LXC中自带的模板,以及大规模创建及复制依然比较麻烦。所以,很难大规模的应用。
所以,2013年出现了Docker技术。Docker是在LXC基础上,使用GoLang二次开发的封装版。
1.4 Doocker体系结构
image.png
4
作者:wwwoldguocom
链接:https://www.jianshu.com/p/9c3f3b38afea
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
有疑问加站长微信联系(非本文作者)