前言
容器无处不在。从本地开发到持续集成,再到管理大规模生产工作负载,容器无处不在。为什么会出现这种情况,它将走向何方,读者您需要对这场席卷我们行业的革命了解些什么?
许多旧技术都承诺 "一次编写,随处运行"。然而,并不是所有的运行时都能提供这种便利,即使是那些提供了这种便利的运行时,也仍然需要运行时(以及任何额外的依赖项)可用,应用程序才能运行。容器提供了 "一次构建,随处运行 "的承诺。通过容器,您可以将应用程序、运行所需的运行时、配置文件以及所需的所有依赖文件打包成一个工件。只要在目标机器上有一个容器运行时,您的应用程序就能正常运行。这样,您的基础架构就能真正做到与应用无关。"在我的机器上就能运行",别再提了!
容器提供了一个标准应用编程接口(API),用于管理容器的生命周期和容器中打包的应用。这种 API 为原本异构的部署环境提供了一个统一的接口,使运营团队不必了解部署和运行应用程序的细节,从而能够专注于他们最擅长的工作--管理基础设施、执行安全性和合规性,以及保持正常运行。
这个接口也是大量创新的基础。Kubernetes 和 Nomad 等容器编排器利用这种控制平面提高了抽象级别,使大规模管理容器化工作流变得更加容易。服务网格技术(如 Istio)与编排器紧密配合,将服务发现和安全性等交叉问题与应用堆栈分离开来。
标准接口的所有优点还可以向上游延伸,使开发人员的日常生活更加轻松。一条命令就能生成整个开发环境。在持续集成(CI)中,容器可以轻松启动,以容纳数据库、队列或应用程序所需的任何依赖项,从而允许集成、烟雾测试和端到端测试来检查和验证您的工作。最后,容器的可移植性使开发团队能够在生产中掌控自己的工作,从而使 DevOps 的许多方面成为现实。
在这个世界上,运行时会定期升级主要版本,团队和组织是多语言的,蓝绿和金丝雀发布等 DevOps 实践是常态,规模是前所未有的,全世界的团队都在使用容器技术来构建和部署他们的应用程序。容器不再是新鲜事物或新奇事物,相反,它代表了企业打包和部署应用程序的规则。
然而,使用容器并非易事。我使用容器已有将近十年的时间,也花了不少时间向世界各地的听众传授这方面的知识,我可以证明这个主题有多么微妙。
肖恩和卡尔将多年的经验提炼成了一本可读性极强、内容全面的 Docker 容器使用指南。从安装到了解如何使用和构建镜像,再到使用容器、自省构建和运行时,以及生产容器,你都可以在本书中找到开始使用 Docker 并提高其生产力所需的一切。
这还不是全部,肖恩和卡尔不怕深入微观细节,他们详细阐述了 cgroups 和命名空间等简单的 Linux 基元是如何让容器这一神奇事物成为现实的。最后,Docker 生态系统正在不断发展壮大,您也可以从中了解到这方面的情况。
在《Docker:第二版中,劳拉-塔乔(Laura Tacho)提出了一个精辟的观点--虚拟机和容器等云原生技术并不相互排斥。相反,它们是相辅相成的。这句话在今天看来再正确不过了--Kata Containers等技术的兴起,将轻量级虚拟机的使用与容器的运行结合在一起,从而让我们拥有了两个世界的最佳体验(虚拟机的隔离性与容器的可移植性),这就是 Laura 评论的最好证明。
容器无处不在。千里之行始于足下--事实上,真正了解容器的旅程是漫长的。如果本书是你迈出的第一步,那么你的选择是正确的。有两位经验丰富的向导为你指路,虽然我知道你并不需要它,但我还是祝你好运。
快乐装箱
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access