自 2013 年起,随着 Docker 的正式面世,容器技术迅速成为了基础技术领域中的热门。而在近两三年中,随着容器编排领域的混战结束,Kubernetes 已经成为了容器编排领域事实上的标准。
有一些人存在误解,认为 Kubernetes 的出现取代了 Docker。但事实上,Docker 与 Kubernetes 是相辅相成的。Kubernetes 使用 Docker 作为容器运行时,用来启动应用;当 Docker 容器规模变大时,自然是需要有容器编排工具进行管理的。引用最近一次的网络研讨会后的文章内容:
In fact, Kubernetes is better with Docker. And Docker is better with Kubernetes.
无论在使用 Docker 或是 Kubernetes 亦或者是使用基于这些技术的其他衍生技术时,都有可能会遇到一些意料之外的情况,当问题发生时,我们总是希望可以快速定位问题,并且从根本上解决问题。
一般情况下,上层的问题比较容易解决,但如果问题发生在运行时/Docker 或容器上时,如果没有系统性的知识,很难从根本上解决问题;当然,有些时候通过搜索引擎可以帮我们找到一些问题的解决办法,但如果不将其彻底搞懂,以后遇到类似问题可能还是没法快速解决。
我自 Docker 0.9 版本时开始学习和使用,自己踩过了很多坑,活跃在社区中,也帮别人解决了很多问题。现在我的新专栏《Docker 核心知识必知必会》正式上线了,共 51 节,从 7 个核心维度来 系统性 的讲解 Docker 容器技术的核心特性及原理,实践与源码相结合;部分内容会深入到 Linux 内核源码,以此来建立起从内核到 Docker 容器技术的知识体系。
我希望借由这个课程,将 Docker 容器技术的本质和思想与我在开发和运维 Docker 过程中对其原理和实践经验的总结讲清楚,并将结合着实践和核心特性的原理,加深对 Docker 容器技术的理解。
因此,我把课程划分成了三大模块: