具体描述
本书从实践者的角度,在讲解Docker高级实践技巧的同时,深入到源代码层次,为读者梳理出Docker容器技术和基于Docker的容器云技术(如Kubernetes)的实现方法和设计思路,帮助读者理解如何在实际场景中利用Docker解决问题并启发新的思考。全书包括两部分,第一部分深入解读Docker容器技术,包括Docker入门、架构总览、Docker容器核心原理解读,以及Docker高级实践技巧;第二部分深入解读基于Docker的主流容器云技术,讲解了构建自己的容器云的方法,深入分析了3类Docker容器云技术的实现方法的设计思路,包括专注Docker容器编排与部署的容器云(Compose、Machine、Swarm、Fleet)、专注应用支撑的容器云(Flynn、Deis),以及一切皆容器的Kubernetes。
本书适用于有一定Docker基础的开发者、架构师、IT专业学生以及探索基于Docker构建云计算平台的技术人员,也非常适合作为高校教材或培训资料。
作者简介
浙江大学SEL实验室
浙江大学软件工程实验室(Software Engineering Lab,SEL)云计算团队组建于2011年,组织博士和硕士研究生搭建、分析和钻研开源的云计算技术,包括Docker、Kubernetes、Cloud Foundry、OpenStack、CloudStack、Eucalyptus、Convirt、OpenShift等,积极为开源社区贡献代码,管理和参与线上线下讨论社区,参加国内外云计算技术峰会并发言。以开源社区为技术交流研发平台,浙江大学SEL实验室在4年多的时间里成长为一个充满热情、富有能力的云计算研发团队,也在国内外开源云计算社区,尤其是在Docker、Kubernetes和Cloud Foundry社区得到了广泛认可。
目录信息
第1章 从容器到容器云 2
1.1 云计算平台 2
1.2 容器,新的革命 3
1.3 进化:从容器到容器云 7
第2章 Docker基础 8
2.1 Docker的安装 8
2.2 Docker操作参数解读 9
2.3 搭建你的第一个Docker应用栈 16
2.3.1 Docker集群部署 16
2.3.2 第一个Hello World 17
2.3.3 开发、测试和发布一体化 27
第3章 Docker核心原理解读 28
3.1 Docker背后的内核知识 28
3.1.1 namespace资源隔离 28
3.1.2 cgroups资源限制 45
3.2 Docker架构概览 53
3.3 client和daemon 55
3.3.1 client模式 55
3.3.2 daemon模式 57
3.3.3 从client到daemon 63
3.4 libcontainer 66
3.4.1 libcontainer的工作方式 68
3.4.2 libcontainer实现原理 69
3.4.3 使用nsinit与libcontainer进行交互 74
3.5 Docker镜像管理 76
3.5.1 什么是Docker镜像 76
3.5.2 Docker镜像关键概念 78
3.5.3 Docker镜像操作解析 80
3.5.4 Docker容器的迁移方法 84
3.6 Docker存储驱动 85
3.6.1 存储驱动的功能与管理 86
3.6.2 aufs与Device Mapper驱动 87
3.7 Docker数据卷 93
3.7.1 数据卷的使用方式 94
3.7.2 数据卷原理解读 98
3.8 Docker网络管理 102
3.8.1 Docker网络基础 102
3.8.2 Docker daemon网络配置原理 107
3.8.3 libcontainer网络配置原理 111
3.8.4 Link原理解析 115
3.9 Docker与容器安全 118
3.9.1 Docker的安全机制 118
3.9.2 Docker安全问题 122
3.9.3 Docker安全的解决方案 126
第4章 Docker高级实践技巧 138
4.1 容器化思维 138
4.1.1 SSH服务器的替代方案 139
4.1.2 Docker内应用日志管理方案 139
4.1.3 其他技巧汇总 140
4.2 Docker高级网络实践 142
4.2.1 玩转Linux network namespace 143
4.2.2 pipework原理解析 148
4.2.3 pipework跨主机通信 154
4.2.4 OVS划分VLAN 159
4.2.5 OVS隧道模式 163
4.3 Dockerfile最佳实践 175
4.3.1 Dockerfile的使用 176
4.3.2 Dockerfile实践心得 180
4.4 Docker容器的监控手段 182
4.4.1 Docker容器监控维度 182
4.4.2 容器监控命令 183
4.4.3 常用的容器监控工具 186
4.5 容器化应用构建的基础:高可用配置中心 189
4.5.1 etcd经典应用场景 190
4.5.2 etcd实现原理 194
第二部分 Docker云平台解读
第5章 构建自己的容器云 210
5.1 再谈云平台的层次架构 210
5.2 从小工到专家 213
第6章 专注编排与部署:三剑客与Fleet 218
6.1 编排小神器Fig 218
6.1.1 再谈容器编排与部署 218
6.1.2 Compose原理:一探究竟 221
6.2 环境透明化工具Machine 225
6.2.1 Machine与虚拟机软件 226
6.2.2 Machine与IaaS平台 227
6.2.3 Machine小结 228
6.3 集群抽象工具Swarm 229
6.3.1 Swarm简介 229
6.3.2 试用Swarm 230
6.3.3 Swarm集群的多种创建方式 231
6.3.4 Swarm对请求的处理 233
6.3.5 Swarm集群的调度策略 233
6.3.6 Swarm与Machine 234
6.4 编排之秀Fleet 235
6.4.1 旧问题新角度:Docker distro 235
6.4.2 Fleet的原理剖析 239
第7章 专注应用支撑和运行时:Flynn 和Deis 245
7.1 Flynn,一个小而美的两层架构 245
7.1.1 第0层:容器云的基础设施 246
7.1.2 第1层:容器云的功能框架 246
7.1.3 Flynn体系架构与实现原理 247
7.2 谈谈Deis与Flynn 257
7.2.1 应用发布上的比较 258
7.2.2 关于Deis的一些思考 260
第8章 一切皆容器:Kubernetes 261
8.1 Kubernetes简介 261
8.2 Kubernetes的设计解读 262
8.2.1 一个典型案例:Guestbook. 263
8.2.2 Kubernetes核心概念剖析 265
8.3 Kubernetes核心组件解读 294
8.3.1 APIServer 294
8.3.2 Scheduler 301
8.3.3 Controller Manager 309
8.3.4 kubelet 314
8.3.5 kube-proxy 320
8.3.6 核心组件协作流程 325
8.4 Kubernetes用户认证授权与资源管理 328
8.4.1 namespace解析 328
8.4.2 基于token文件或客户端证书的认证机制 333
8.4.3 基于访问规则的授权机制 334
8.4.4 基于资源的授权控制AdmissionControl 336
8.5 Kubernetes网络核心原理 347
8.5.1 单pod单IP模型 348
8.5.2 pod和网络容器 350
8.5.3 实现Kubernetes的网络模型 353
8.6 Kubernetes高级实践 356
8.6.1 Kubernetes高级实践之应用健康检查 356
8.6.2 Kubernetes高级实践之高可用性 358
8.6.3 Kubernetes高级实践之日志 362
8.6.4 Kubernetes高级实践之集成DNS 364
8.6.5 Kubernetes高级实践之容器上下文环境 366
8.7 不要停止思考 368
第三部分 附录
附录A Docker的安装 372
附录B 阅读Docker源代码的神兵利器 379
附录C 快速熟悉开源项目 388
附录D cgroups的测试与使用 391
附录E cgroups子系统配置参数介绍 395
附录F Kubernetes的安装 400
后记 403
· · · · · · (收起)
读后感
感觉作者说啥都要把 docker 和“云”扯在一起,docker 集群不更好理解吗,非要说成 docker云,相反呢,那些云服务厂家是如何使用docker 的,这本书就完全没有介绍,他们是不是使用docker 都存疑。说成“云”会多卖钱吗?感觉很莫名奇妙啊。 其他的介绍还是挺好的,比较系统。主...
随着互联网技术的快速发展,IT企业也急需在技术之海中迅速找到自己的立足之处,快速学习,快速转型,快速开发,对于一些非紧要系统来说,开源项目方便快捷,迅速掌握相关的技术要点,也急需这样无论是从理论层面还是技术层面都可以深度点拨,开启智慧的技术指南书。 身在互联网...
用户评价
《Docker——容器与容器云》这本书在讲解Docker的核心概念时,始终围绕着“效率”和“敏捷”这两个关键词展开。作者通过大量的实践案例,展示了Docker如何能够帮助开发者快速构建、测试和部署应用程序,从而缩短产品上市时间。我特别欣赏书中关于“持续集成与持续交付(CI/CD)”的章节,它详细地介绍了如何将Docker集成到CI/CD流水线中,从而实现自动化构建、测试和部署。这对我来说,是实现DevOps文化落地的关键。我一直在思考如何优化我们的CI/CD流程,以提高软件发布的频率和质量,而这本书为我提供了非常清晰的解决方案。书中关于“多主机容器编排”的讲解,也让我对Docker Swarm和Kubernetes有了更深入的认识,了解了它们在管理大规模容器集群方面的能力。我希望这本书能够帮助我彻底掌握Docker在CI/CD和容器编排方面的应用,从而为我们团队带来显著的效率提升。
《Docker——容器与容器云》这本书给我带来的最大感受是,它不仅仅是一本关于技术的工具书,更是一本关于思维方式转变的书。作者用一种非常宏观的视角,将Docker置于整个IT生态和未来发展的大背景下进行解读。我一直对微服务架构很感兴趣,而Docker恰恰是实现微服务架构的重要推手。书中关于如何利用Docker来构建、部署和管理微服务的章节,让我对微服务产生了更清晰的认识。我特别欣赏书中对Docker Swarm和Kubernetes等容器编排工具的对比分析,这让我能够更好地理解不同容器编排方案的优缺点,以及它们各自适用的场景。我一直在思考如何将我的团队带入到容器化的浪潮中,而这本书为我提供了非常好的理论基础和实践指导。它让我看到了容器化技术在提高开发效率、降低运维成本、增强系统弹性和可伸缩性方面的巨大优势。通过阅读这本书,我不仅仅学会了如何使用Docker,更重要的是,我开始思考如何利用Docker来重塑我们的开发和部署流程,从而更好地适应快速变化的业务需求。
这本书《Docker——容器与容器云》的内容对我来说,简直是一场及时雨。作为一名负责服务器运维的工程师,我经常需要处理各种各样环境不一致的问题,以及复杂的部署流程。Docker的出现,让我看到了解决这些痛点的希望。书中对于Docker镜像的构建和管理,以及如何利用Docker来隔离应用程序和依赖项的描述,都为我提供了宝贵的启示。我特别看重书中关于“容器化部署”的实践部分,它详细地介绍了如何将现有的应用程序迁移到Docker容器中,并且如何进行有效的部署和回滚。这对于我来说,是解决日常工作中许多难题的关键。我希望这本书能够帮助我理解Docker在持续集成/持续部署(CI/CD)流水线中的作用,以及如何利用Docker来简化自动化运维。书中对Docker Hub和私有镜像仓库的讲解,也让我看到了如何更方便地管理和分发Docker镜像。我一直希望能够构建一个更稳定、更可控的IT环境,而Docker显然是实现这一目标的重要工具。这本书让我对Docker的认识不再停留在表面,而是对其内在的机制和应用有了更深刻的理解,这对我未来的工作方向也产生了重要的影响。
阅读《Docker——容器与容器云》这本书,我感受到了一种前所未有的启发。作者以一种非常前瞻的视角,将Docker置于“容器云”的宏大叙事中进行解读,让我看到了Docker在未来云计算领域的核心地位。书中关于“容器化微服务架构”的讲解,让我对微服务产生了更清晰的认识,以及Docker如何赋能微服务的快速开发、部署和扩展。我一直对微服务架构的落地有很多疑问,而这本书则为我提供了宝贵的理论基础和实践指导。我特别欣赏书中关于“云原生应用开发”的章节,它详细地介绍了Docker如何与Kubernetes、Prometheus、Grafana等云原生技术相结合,构建高效、可伸缩、弹性的应用程序。这让我看到了一个全新的技术生态系统,也为我未来的学习和发展指明了方向。我迫切希望这本书能够帮助我全面理解Docker在容器云生态系统中的作用,并将其应用到我的实际工作中,从而更好地拥抱云原生技术的发展趋势。
这本书《Docker——容器与容器云》的编排思路非常清晰,从Docker的基础概念入手,逐步深入到更高级的主题,如容器网络、存储、安全以及与云平台的集成。作者在讲解每个概念时,都会辅以大量的代码示例和图示,这极大地帮助我理解了抽象的技术原理。我一直对Docker的网络模型感到困惑,但这本书通过生动形象的比喻和详细的配置说明,让我对Docker的网络虚拟化有了彻底的理解。它解释了Docker如何通过桥接、主机、容器等不同的网络模式来实现容器之间的通信,以及如何将容器暴露到外部网络。我特别喜欢书中关于“容器编排”的讲解,它详细地介绍了Kubernetes的基本架构和核心组件,以及如何利用Kubernetes来管理和调度大规模的Docker容器集群。这对我来说,是迈向自动化和可伸缩化运维的关键一步。我一直希望能够构建一个能够应对高并发访问和故障转移的系统,而Docker与Kubernetes的结合,无疑是实现这一目标的理想选择。这本书为我提供了实践的蓝图,让我对未来的技术方向有了更明确的规划。
《Docker——容器与容器云》这本书的知识点非常丰富,涵盖了Docker从基础到高级的各个方面。作者在讲解Docker的生命周期管理,包括容器的创建、启动、停止、删除等操作时,都提供了详尽的命令和参数说明,让我能够快速上手。我之前在使用Docker时,常常会遇到一些棘手的配置问题,尤其是关于Docker的资源限制和健康检查部分。这本书在这方面提供了非常详细的指导,让我能够更有效地管理和监控Docker容器的运行状态。我特别欣赏书中关于“容器化云平台”的探讨,它详细地介绍了Docker如何与AWS、Azure、Google Cloud等主流云平台进行集成,以及如何利用云平台的PaaS服务来简化Docker应用的部署和管理。这对我来说,意味着可以更轻松地将Docker应用迁移到云端,享受云带来的弹性、可伸缩性和高可用性。这本书让我看到了Docker在现代云计算时代的核心价值,也为我打开了通往更广阔技术领域的大门。
阅读《Docker——容器与容器云》这本书,我感觉自己仿佛置身于一个全新的技术世界。书中的讲解,从Docker的诞生背景、核心概念,到它如何改变了软件的构建、分发和运行方式,都让我耳目一新。我特别喜欢书中对“镜像”和“容器”这两个核心概念的阐述,它用一种非常形象的比喻,让我一下子就明白了这两个抽象的概念是如何运作的。我原本以为Docker只是一个简单的打包工具,但深入阅读后才发现,它构建了一个全新的生态系统,能够极大地提高开发效率和部署的可靠性。书中对Docker Compose的讲解也让我印象深刻,我一直以来都为管理多个关联服务而感到头疼,而Docker Compose就像一位魔法师,能够轻松地将它们组织起来。更让我兴奋的是,书中还探讨了“容器云”的概念,这让我看到了Docker在云计算时代的巨大潜力。我一直关注着云原生技术的发展,而Docker显然是其中的重要基石。我希望这本书能够让我更深入地理解Kubernetes等容器编排技术的原理,并能为我提供一些在云环境中部署和管理Docker应用的指导。从这本书的内容来看,它不仅仅是一本关于Docker的入门指南,更是一本能够引领我走向容器化未来发展的路线图。我迫不及待地想要将书中学到的知识应用到我的实际工作中,去体验Docker带来的效率提升和便捷性。
当我翻开《Docker——容器与容器云》这本书时,我立刻被它那严谨而又富有洞察力的内容所吸引。作者在书中对Docker的封装、隔离和可移植性这三大核心优势进行了深入的剖析,让我深刻理解了Docker为何能够改变软件开发和部署的模式。我特别喜欢书中关于“声明式配置”的概念,它详细地介绍了如何通过Dockerfile和Docker Compose文件来定义和管理容器化应用的环境,这极大地提高了我的工作效率。我一直希望能够构建一个更可靠、更易于维护的开发和生产环境,而Docker的引入,让我看到了实现这一目标的曙光。书中关于“容器镜像的构建优化”的章节,也为我提供了很多实用的技巧,例如如何减小镜像体积,以及如何提高镜像的构建速度,这对于我在实际操作中节省时间和资源非常有帮助。我迫切希望这本书能够帮助我掌握Docker的各项技能,并将其应用于我的日常开发和运维工作中,从而提升整个团队的效率和交付能力。
《Docker——容器与容器云》这本书的文字功底非常扎实,作者在讲解Docker的核心技术时,能够将复杂的技术概念拆解得非常清晰易懂。我尤其欣赏书中对Dockerfile的讲解,它详细地阐述了如何编写一个高效、健壮的Dockerfile,这对于任何想要踏入容器化领域的人来说都是至关重要的。我之前尝试过自己构建Docker镜像,但总是会遇到各种各样的问题,这本书无疑为我提供了一个清晰的解决方案。另外,书中关于Docker网络和存储的讲解也非常到位,它详细地介绍了Docker如何管理容器之间的网络连接以及如何处理容器的数据持久化问题。这些都是在实际应用中非常关键的方面。我一直对Docker的安全性问题感到担忧,而这本书也花了不少篇幅来探讨Docker的安全性,包括如何加固Docker守护进程,以及如何使用安全扫描工具来检测镜像中的漏洞。这让我对Docker的应用更加放心。通过阅读这本书,我不仅掌握了Docker的基本操作,更重要的是,我开始理解了Docker的哲学,以及它如何能够赋能DevOps文化,实现持续集成和持续交付。这本书让我看到了一个更加高效、敏捷的软件开发和部署新模式。
这本书《Docker——容器与容器云》的封面设计就足够吸引人,那种深邃的蓝色背景,辅以简洁而又充满科技感的Docker鲸鱼Logo,瞬间就勾起了我对容器化技术的兴趣。我一直听说Docker在IT界掀起了巨大的变革,但总觉得离自己有点远,直到我看到这本书,才真正有了深入了解它的冲动。我不是一个纯粹的技术开发者,我更多的是一个对技术趋势保持敏感的IT从业者,希望通过学习Docker,能够更好地理解现代软件开发和部署的流程,甚至能够为我的团队带来一些新的思路和方法。在工作之余,我总会抽时间浏览一些技术博客和论坛,而Docker的名字几乎是无处不在,从微服务架构的落地,到DevOps文化的推广,Docker的身影无处不在。这本书的名字恰恰点明了核心——“容器”和“容器云”,这让我觉得它不仅仅是关于Docker这个工具本身,更是关于它所构建的整个生态系统和未来的发展方向。我非常期待这本书能够为我揭示Docker背后的逻辑,以及它如何能够颠覆传统的IT基础设施和运维模式。我希望它能用一种相对易懂的方式来讲解复杂的概念,毕竟我不是一个拥有深厚计算机科学背景的程序员。这本书的厚度也让我感到欣慰,说明内容会比较充实,不会流于表面。我特别希望它能包含一些实际的应用案例,让我能够看到Docker在真实世界中的威力。
三星半。偷懒专用。kubernetes潜力股。
看了一遍之后觉得熟读深入理解计算机系统真是太必要了 对于计算机网络和计算机系统都玩的很 6666 当然 表面的玩一玩 docker 还是门槛很低的
浙大SEL实验室确实是国内少有的理论和实践都很强的团队,书的内容也是很踏实用心的原创。。。已经远远超过我目前所需的知识,强烈推荐给各位DevOps。。。
基于容器实现的DevOps和微服务是个很热的话题。本书对容器(一种轻量级虚拟化手段)和容器云(基于容器实现的分布式系统)的原理、技术、实现、应用等做了较深入的介绍。适合入门。
内容非常丰富,把docker相关操作、底层原理、周边设施及相关优劣、演化说的都比较到位了,因为知识点多,有些地方没法说的太详细,还需查找相关资料。这种授之以渔的书真的十分少见,虽然docker演变很快,部分操作及接口已经过时,但是底层的思想还是可以借鉴的,我从这本书中学到了很多,对于技术的发展、流行趋势及未来演进都有了更深的理解,书中提供的这套方法论、分析论可以指导分析以后的技术趋势,另外说一句,Deis已经被微软收购,正应了书中的预言,Deis想从众多竞争中脱颖而出很困难,最终也没能逃过被收购的命运,Flynn倒是发展的还不错,全五星推荐