
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
广州Linux培训:一些令人振奋的消息引发了我对今年DockerCon的兴趣,在这次会议中,无可争议的容器巨头公司Docker发布了一个新的操作系统:LinuxKit。少即是多,不可否认的是,用户一直在寻找一个可以运行他们的微服务的精简版本的Linux。通过容器化,你会尽可能地最小化每个应用程序,使其成为一个适合于运行在其自身容器内的独立进程。但是,由于你需要对那些驻留容器的宿主机出现的问题进行修补,因此你不断地在宿主机间移动容器。
实际上,如果没有像Kubernetes或Docker Swarm这样的编排系统,容器编排几乎总是会导致停机。这家容器巨头宣布的是一个灵活的、可扩展的操作系统,而为了可移植性,系统服务也是运行在容器之中。甚至,令人惊讶的是,就连Docker运行时环境也是运行在容器内!在本文中,我们将简要介绍一下LinuxKit中所承诺的内容,以及如何自己尝试一下这个不断精简、优化的容器。
不用说,这只是让你保持操作系统尽可能小的原因之一。
我曾多次在不同场合重复过的最喜爱的名言,来自荷兰的天才程序员Wietse Zweitze,他为我们提供了重要的Email软件Postfix和TCP Wrappers等知名软件。
在Postfix网站 指出,即使你编码和Wietse一样小心,“每1000行[你]就会在Postfix中引入一个额外的bug”。从我的专业的DevSecOps角度看,这里提到的“bug”可以将其大致看做安全问题。
从安全的角度来看,正是由于这个原因,代码世界中“少即是多”。简单地说,使用较少的代码行有很多好处,即安全性、管理时间和性能。对于初学者来说,这意味着安全漏洞较少,更新软件包的时间更短,启动时间更快。
深入观察,考虑下在容器内部运行你的程序。
一个好的起点是Alpine Linux,它是一个苗条、精简的操作系统,通常比那些笨重的系统更受喜欢,如Ubuntu或CentOS等。Alpine还提供了一个miniroot文件系统(用于容器内),最近我看到的大小是惊人的1.8M。事实上,这个完整的Linux操作系统下载后有80M。
如果你决定使用Alpine Linux作为Docker基础镜像,那么你可以在Docker Hub上找到一个, 它将其描述为:“一个基于Alpine Linux的最小Docker镜像,具有完整的包索引,大小只有5 MB!”
据说无处不在的“Window开始菜单”文件也是大致相同的大小!我没有验证过,也不会进一步评论。
讲真,希望你去了解一下这个创新的类Unix操作系统(如Alpine Linux)的强大功能。
锁定一切,再说一点,Alpine Linux是(并不惊人)基于BusyBox,这是一套著名的打包了Linux命令的集合,许多人不会意识到他们的宽带路由器、智能电视,当然还有他们家庭中的物联网设备就有它。
Alpine Linux站点的“关于”页面的评论中指出:“Alpine Linux的设计考虑到安全性。内核使用grsecurity/PaX的非官方移植进行了修补,所有用户态二进制文件都编译为具有堆栈保护的地址无关可执行文件(PIE)。 这些主动安全特性可以防止所有类别的零日漏洞和其它漏洞利用。”
换句话说,这些捆绑在Alpine Linux中的精简二进制文件提供的功能通过了那些行业级安全工具筛选,以缓解缓冲区溢出攻击所带来的危害。
多出一只袜子,你可能会问,为什么当我们谈及Docker的新操作系统时,容器的内部结构很重要?
那么,你可能已经猜到,当涉及容器时,他们的目标是精简。除非绝对必要,否则不包括任何东西。所以你可以放心地清理橱柜、花园棚子、车库和袜子抽屉了。
Docker的确因为它们的先见而获得声望。据报道,2月初,Docker聘请了Alpine Linux的主要推动者Nathaniel Copa,他帮助将默认的官方镜像库从Ubuntu切换到Alpine。Docker Hub从新近精简镜像节省的带宽受到了赞誉。
并且最新的情况是,这项工作将与最新的基于容器的操作系统相结合:Docker的LinuxKit。
要说清楚的是LinuxKit注定不会代替Alpine,而是位于容器下层,并作为一个完整的操作系统出现,你可以高兴地启动你的运行时守护程序(在这种情况下,是生成你的容器的Docker守护程序)。
金发女郎的Atomic,经过精心调试的宿主机绝对不是一件新事物(以前提到过嵌入式Linux的家用设备)。在过去几十年中一直在优化Linux的天才在某个时候意识到底层的操作系统才是快速生产含有大量容器主机的关键。
例如,强大的红帽长期以来一直在出售已经贡献给Project Atomic的 红帽Atomic。后者继续解释:
“基于Red Hat Enterprise Linux或CentOS和Fedora项目的成熟技术,Atomic Host是一个轻量级的、不可变的平台,其设计目的仅在于运行容器化应用程序。”