具体描述
本书是一本Docker入门图书,全书分为17章,从Docker概览和Docker技术两部分进行全面解析,深入浅出地介绍了Docker的相关知识,清晰详细的操作步骤结合大量的实际代码帮助读者学以致用,将Docker知识应用到真实的项目开发当中。
本书适合对Docker感兴趣的入门新手、Docker技术开发人员以及运维人员阅读,本书也可作为Docker认证工程师考试的参考图书。
作者简介
Nigel Poulton,Docker Captains专家,亚马逊畅销图书作者,存储专家,Docker技术先驱。Nigel有丰富的运维技术经验,著有多部容器相关的图书,并开设了视频培训课程,在业界有非常大的影响力。
出版了《Docker Deep Dive》《The Kubernetes Book 》等图书。
目录信息
第1章 容器发展之路 2
1.1 落后的旧时代 2
1.2 你好,VMware! 2
1.3 虚拟机的不足 3
1.4 你好,容器! 3
1.5 Linux容器 3
1.6 你好,Docker! 4
1.7 Windows容器 4
1.8 Windows容器vs Linux容器 4
1.9 Mac容器现状 5
1.10 Kubernetes 5
1.11 本章小结 6
第2章 走进Docker 7
2.1 Docker—简介 7
2.2 Docker公司 7
2.3 Docker运行时与编排引擎 8
2.4 Docker开源项目(Moby) 9
2.5 容器生态 10
2.6 开放容器计划 11
2.7 本章小结 12
第3章 Docker安装 13
3.1 Windows版Docker(DfW) 13
3.2 Mac版Docker(DfM) 17
3.3 在Linux上安装Docker 19
3.4 在Windows Server 2016上安装Docker 21
3.5 Docker引擎(Engine)升级 22
3.5.1 在Ubuntu 16.04上升级Docker CE 23
3.5.2 在Windows Server 2016上升级Docker EE 24
3.6 Docker存储驱动的选择 25
3.6.1 Device Mapper配置 26
3.6.2 让Docker自动设置direct-lvm 26
3.6.3 手动配置Device Mapper的direct-lvm 28
3.7 本章小结 28
第4章 纵观Docker 29
4.1 运维视角 29
4.1.1 镜像 30
4.1.2 容器 31
4.1.3 连接到运行中的容器 34
4.2 开发视角 35
4.3 本章小结 38
第二部分 Docker技术
第5章 Docker引擎 40
5.1 Docker引擎—简介 40
5.2 Docker引擎—详解 41
5.2.1 摆脱LXC 41
5.2.2 摒弃大而全的Docker daemon 42
5.2.3 开放容器计划(OCI)的影响 43
5.2.4 runc 43
5.2.5 containerd 43
5.2.6 启动一个新的容器(示例) 44
5.2.7 该模型的显著优势 45
5.2.8 shim 45
5.2.9 在Linux中的实现 46
5.2.10 daemon的作用 46
5.3 本章小结 46
第6章 Docker镜像 48
6.1 Docker镜像—简介 48
6.2 Docker镜像—详解 48
6.2.1 镜像和容器 49
6.2.2 镜像通常比较小 49
6.2.3 拉取镜像 49
6.2.4 镜像命名 51
6.2.5 镜像仓库服务 51
6.2.6 镜像命名和标签 52
6.2.7 为镜像打多个标签 54
6.2.8 过滤docker image ls的输出内容 55
6.2.9 通过CLI方式搜索Docker Hub 56
6.2.10 镜像和分层 57
6.2.11 共享镜像层 60
6.2.12 根据摘要拉取镜像 61
6.2.13 镜像散列值(摘要) 63
6.2.14 多层架构的镜像 63
6.2.15 删除镜像 65
6.3 镜像—命令 67
6.4 本章小结 67
第7章 Docker容器 68
7.1 Docker容器—简介 68
7.2 Docker容器—详解 69
7.2.1 容器vs虚拟机 69
7.2.2 虚拟机的额外开销 71
7.2.3 运行的容器 71
7.2.4 检查Docker daemon 71
7.2.5 启动一个简单容器 72
7.2.6 容器进程 74
7.2.7 容器生命周期 75
7.2.8 优雅地停止容器 78
7.2.9 利用重启策略进行容器的自我修复 78
7.2.10 Web服务器示例 80
7.2.11 查看容器详情 82
7.2.12 快速清理 82
7.3 容器—命令 83
7.4 本章小结 84
第8章 应用的容器化 85
8.1 应用的容器化—简介 85
8.2 应用的容器化—详解 86
8.2.1 单体应用容器化 86
8.2.2 生产环境中的多阶段构建 95
8.2.3 最佳实践 98
8.3 应用的容器化—命令 100
8.4 本章小结 101
第9章 使用Docker Compose部署应用 102
9.1 使用Docker Compose部署应用—简介 102
9.2 使用Docker Compose部署应用—详解 103
9.2.1 Docker Compose的背景 103
9.2.2 安装Docker Compose 103
9.2.3 Compose文件 105
9.2.4 使用Docker Compose部署应用 107
9.2.5 使用Docker Compose管理应用 110
9.3 使用Docker Compose部署应用—命令 115
9.4 本章小结 116
第10章 Docker Swarm 117
10.1 Docker Swarm—简介 117
10.2 Docker Swarm—详解 118
10.2.1 Swarm的初步介绍 118
10.2.2 搭建安全Swarm集群 119
10.2.3 Swarm服务 125
10.2.4 故障排除 133
10.3 Docker Swarm—命令 134
10.4 本章小结 135
第11章 Docker网络 136
11.1 Docker网络—简介 136
11.2 Docker网络—详解 137
11.2.1 基础理论 137
11.2.2 单机桥接网络 140
11.2.3 多机覆盖网络 146
11.2.4 接入现有网络 146
11.2.5 服务发现 152
11.2.6 Ingress网络 153
11.3 Docker网络—命令 156
11.4 本章小结 156
第12章 Docker覆盖网络 157
12.1 Docker覆盖网络—简介 157
12.2 Docker覆盖网络—详解 157
12.2.1 在Swarm模式下构建并测试Docker覆盖网络 158
12.2.2 工作原理 164
12.3 Docker覆盖网络—命令 168
12.4 本章小结 168
第13章 卷与持久化数据 169
13.1 卷与持久化数据—简介 169
13.2 卷与持久化数据—详解 169
13.2.1 容器与非持久数据 170
13.2.2 容器与持久化数据 170
13.2.3 在集群节点间共享存储 175
13.3 卷与持久化数据—命令 176
13.4 本章小结 176
第14章 使用Docker Stack部署应用 177
14.1 使用Docker Stack部署应用—简介 177
14.2 使用Docker Stack部署应用—详解 178
14.2.1 简单应用 178
14.2.2 深入分析Stack文件 180
14.2.3 部署应用 186
14.2.4 管理应用 191
14.3 使用Docker Stack部署应用—命令 193
14.4 本章小结 194
第15章 Docker安全 195
15.1 Docker安全—简介 195
15.2 Docker安全—详解 196
15.2.1 Linux安全技术 197
15.2.2 Docker平台安全技术 201
15.3 本章小结 212
第16章 企业版工具 213
16.1 企业版工具—简介 213
16.2 企业版工具—详解 214
16.2.1 Docker EE引擎 214
16.2.2 Docker通用控制平面(UCP) 216
16.2.3 Docker可信镜像仓库服务(DTR) 227
16.3 本章小结 233
第17章 企业级特性 234
17.1 企业级特性—简介 234
17.2 企业级特性—详解 234
17.2.1 基于角色的权限控制(RBAC) 235
17.2.2 集成活动目录 239
17.2.3 Docker内容信任机制(DCT) 241
17.2.4 配置Docker可信镜像仓库服务(DTR) 243
17.2.5 使用Docker可信镜像仓库服务 244
17.2.6 提升镜像 247
17.2.7 HTTP路由网格(HRM) 250
17.3 本章小结 253
附录A 安全客户端与daemon的通信 255
附录B DCA考试 265
附录C 延伸 270
· · · · · · (收起)
读后感
对于我这样一个纯小白来说,这本书无疑是我的技术导师,由浅入深,步步为营!书中的例子大部分都可以运行,但是因为作者处在国外环境,所以我们在下载时会很慢,这时就要上网找办法,比如配置加速镜像,这书中是不讲的,还有配置swarm集群的时候,我用到了virtualbox和docker m...
对于我这样一个纯小白来说,这本书无疑是我的技术导师,由浅入深,步步为营!书中的例子大部分都可以运行,但是因为作者处在国外环境,所以我们在下载时会很慢,这时就要上网找办法,比如配置加速镜像,这书中是不讲的,还有配置swarm集群的时候,我用到了virtualbox和docker m...
对于我这样一个纯小白来说,这本书无疑是我的技术导师,由浅入深,步步为营!书中的例子大部分都可以运行,但是因为作者处在国外环境,所以我们在下载时会很慢,这时就要上网找办法,比如配置加速镜像,这书中是不讲的,还有配置swarm集群的时候,我用到了virtualbox和docker m...
对于我这样一个纯小白来说,这本书无疑是我的技术导师,由浅入深,步步为营!书中的例子大部分都可以运行,但是因为作者处在国外环境,所以我们在下载时会很慢,这时就要上网找办法,比如配置加速镜像,这书中是不讲的,还有配置swarm集群的时候,我用到了virtualbox和docker m...
对于我这样一个纯小白来说,这本书无疑是我的技术导师,由浅入深,步步为营!书中的例子大部分都可以运行,但是因为作者处在国外环境,所以我们在下载时会很慢,这时就要上网找办法,比如配置加速镜像,这书中是不讲的,还有配置swarm集群的时候,我用到了virtualbox和docker m...
用户评价
作为一名对技术有执着追求的个人开发者,我一直在寻找能提高开发效率和部署便捷性的工具。《深入浅出Docker》这本书恰好满足了我的需求。它并非一本简单的操作指南,而是从Docker的底层原理出发,深入浅出地讲解了容器化技术的方方面面。我特别赞赏作者对于“Dockerfile”的细致剖析,这不仅仅是学习命令的堆砌,更是一种构建高质量、高效率镜像的思维方式。书中关于“Docker网络”的章节,更是让我豁然开朗,理解了容器之间是如何通信的,以及如何配置各种网络模式来满足不同的应用场景。此外,这本书还涉及到了“Docker数据持久化”的问题,通过卷(Volume)和绑定挂载(Bind Mount)的讲解,我能够灵活地管理容器中的数据,确保数据的安全性和可恢复性。这本书让我不仅能够熟练地使用Docker,更能深刻理解其背后的设计哲学,从而在实际开发中做出更明智的技术选择。
我是一名敏捷开发实践者,深知持续集成和持续部署(CI/CD)对于现代软件开发的重要性。在接触《深入浅出Docker》之前,我一直觉得CI/CD流程的搭建比较复杂,尤其是在处理不同环境和依赖时。这本书的出现,简直是为我的CI/CD梦想插上了翅膀。它将Docker无缝地集成到了CI/CD流程中,让我能够轻松地构建、测试和部署Docker镜像。我特别喜欢书中关于“Docker Jenkins集成”的案例,它展示了如何利用Jenkins作为CI/CD服务器,调用Docker命令来自动化构建和部署应用程序。此外,书中还提到了如何利用Docker来模拟生产环境进行测试,这极大地提高了测试的准确性和效率。通过这本书的学习,我不仅能够构建更健壮的CI/CD流水线,更能深刻理解容器化在DevOps文化中的核心作用,加速了软件的交付周期,提升了团队的协作效率。
我是一位对云计算和微服务架构充满热情的技术爱好者。在探索微服务技术栈的过程中,Docker扮演着至关重要的角色。我选择《深入浅出Docker》这本书,正是看中了它能够全面深入地讲解Docker的方方面面。《深入浅出Docker》不仅仅是关于Docker本身,它更像是一扇通往容器化世界的大门。书中对Docker镜像分层构建的深入解析,让我理解了镜像的不可变性以及如何通过优化Dockerfile来减小镜像体积、加快构建速度,这对于微服务的小镜像需求来说至关重要。另外,作者对Docker网络模式的详细阐述,从桥接模式到主机模式,再到覆盖网络,让我能够根据不同的微服务通信需求选择最合适的网络方案,确保服务间的顺畅交互。这本书还介绍了Docker的安全实践,比如如何最小化容器的权限,如何使用安全扫描工具,这些内容对于构建安全的微服务系统至关重要。它为我构建和管理复杂的微服务应用提供了坚实的基础。
作为一名在学习阶段的计算机科学专业的学生,我对各种新技术都充满了好奇,而Docker无疑是近几年最热门的技术之一。在接触《深入浅出Docker》之前,我对“容器”这个词只有模糊的概念,知道它和虚拟机有关,但具体是什么、怎么工作就一无所知了。这本书真的做到了“深入浅出”,它从最基础的原理讲起,用大量的图示和代码示例,解释了Docker是如何在Linux内核的Namespace和Cgroups机制上工作的。我特别喜欢作者对Docker Image的讲解,它不像传统的软件安装包,而是分层构建的,这种设计理念让我对Docker的轻量级和高效性有了更深的理解。书中关于“Docker Registry”和“Docker Hub”的介绍,也让我明白了一个庞大的容器生态系统是如何运作的。而且,这本书还给了我一些关于Docker安全性的初步指导,这对于我这个初学者来说非常重要。总的来说,这本书为我打下了坚实的Docker基础,让我能够更有信心地去学习和实践更高级的容器技术,比如Kubernetes。
我是一名技术爱好者,对各种前沿技术都充满探索欲。《深入浅出Docker》这本书就像一位经验丰富的向导,带领我一步步深入Docker的精彩世界。它以一种极其清晰易懂的方式,解释了Docker的核心概念,比如镜像的构建、容器的运行以及仓库的使用。我尤其对书中对“Dockerfile”的细致讲解印象深刻,它不仅仅是指令的罗列,更是指导我们如何构建一个高效、安全、可移植的应用程序运行环境的“食谱”。书中关于“Docker网络”的章节,让我彻底理解了容器之间的通信机制,以及如何根据不同的场景选择合适的网络模式,例如桥接模式、主机模式,甚至是覆盖网络,这对于构建复杂的分布式系统非常有帮助。这本书还分享了Docker在数据持久化方面的解决方案,通过卷(Volume)和绑定挂载(Bind Mount)的讲解,我能够轻松管理容器中的数据,确保数据的安全和可访问性。通过阅读这本书,我不仅掌握了Docker的使用技巧,更重要的是,它帮助我建立了一种全新的思维方式,让我能够更好地理解和应用容器化技术,为我的技术探索之路提供了强有力的支持。
我是一名对新技术保持好奇心的学生,一直在寻找能帮助我理解复杂技术的书籍。《深入浅出Docker》这本书完全超出了我的预期。它并没有采用枯燥的技术术语,而是用非常生动形象的比喻,将Docker的核心概念——镜像、容器、仓库——一一展现在我面前。我尤其喜欢书中对于“Docker Image”的讲解,它通过分层构建的理念,让我理解了镜像的不可变性,以及如何通过优化Dockerfile来构建更轻量、更高效的镜像,这对于我理解应用程序的打包和分发过程非常有帮助。书中还详细介绍了“Docker Registry”和“Docker Hub”的概念,让我了解了如何存储、分享和拉取Docker镜像,构建了一个庞大的容器生态系统。通过学习这本书,我不仅掌握了Docker的基本使用技巧,更重要的是,它帮助我建立了一种新的思维模式——容器化思维,让我能够更好地理解和应用各种云原生技术。
我是一名有着几年经验的后端开发者,在工作中经常会遇到环境部署和协作上的各种问题。每次新项目启动,或者团队成员之间交接代码时,都会耗费大量的时间在配置环境上,稍有不慎就会出现“在我机器上能跑”的情况。听说Docker能解决这些痛点,于是我毫不犹豫地入手了《深入浅出Docker》。这本书的结构安排非常合理,它并没有急于展示Docker的强大功能,而是从Docker的核心概念——镜像和容器——入手,用非常形象的比喻解释了它们之间的关系。我尤其喜欢它关于“Dockerfile”的章节,作者不仅讲解了各种指令的用法,还深入分析了不同构建方式的优劣,以及如何优化镜像的大小和构建速度。这对于我这种追求极致性能的开发者来说,简直是福音。更重要的是,这本书还涉及到了Docker Compose,让我能够轻松地将多个服务进行编排和管理,这对于构建复杂的微服务架构来说,简直是不可或缺的工具。通过这本书的学习,我不仅解决了日常开发中的环境问题,更提升了项目的可移植性和可维护性,大大减少了团队沟通成本,让大家能更专注于业务逻辑的实现。
作为一名软件架构师,我一直在寻找能帮助团队更高效地构建和部署现代应用程序的解决方案。《深入浅出Docker》这本书为我提供了宝贵的见解。它不仅仅是一本Docker的操作手册,更是一本关于如何利用容器化技术提升软件开发和部署效率的实践指南。书中对“Dockerfile”的深入分析,让我能够指导团队成员编写出结构清晰、易于维护的Dockerfile,从而构建出高质量、可复用的Docker镜像。我对书中关于“Docker Compose”的详细讲解尤为赞赏,它能够帮助我们轻松地定义和管理多容器的应用程序,实现服务的快速启动和部署,这对于微服务架构的落地至关重要。此外,本书还探讨了Docker在 CI/CD 流程中的集成,以及如何利用Docker来模拟生产环境进行自动化测试,这极大地提升了我们团队的交付效率和产品质量。
我是一名运维工程师,每天的工作都围绕着服务器的部署、管理和维护。在Docker出现之前,我们主要依赖于虚拟机或者脚本来实现服务的自动化部署,但这些方法都存在一些固有的问题,比如虚拟机资源占用大、启动慢,脚本部署又容易出错且难以管理。当我看到《深入浅出Docker》这本书时,就觉得它可能是我一直在寻找的解决方案。这本书并没有停留在 Docker 的基础命令上,而是深入探讨了 Docker 在生产环境中的应用,包括如何构建高可用、可扩展的容器化部署方案。我对书中关于“Docker Swarm”的介绍印象特别深刻,它是一种简单易用的容器编排工具,能够帮助我轻松地将 Docker 容器部署到集群中,并实现自动化管理。此外,这本书还分享了一些关于 Docker 安全的最佳实践,比如如何限制容器的权限、如何扫描镜像中的漏洞等,这对于保障生产环境的安全性至关重要。读完这本书,我感觉自己对如何利用Docker来提升运维效率、降低运维成本有了更清晰的认识,也对未来的自动化运维充满了信心。
这本《深入浅出Docker》的封面设计就足够吸引人了,深邃的蓝色背景,简洁却有力的Docker鲸鱼图标,仿佛在预示着一场关于容器技术的精彩旅程。我一直对Docker这个概念有所耳闻,但始终觉得它蒙着一层神秘的面纱,难以窥探其全貌。直到我翻开这本书,才真正感受到它带来的震撼。它不像那些枯燥的技术手册,上来就抛出一堆概念和命令,而是用一种非常平易近人的方式,一步步引导我走进Docker的世界。从最基础的容器是什么,为什么需要它,到如何安装、如何使用,每一步都讲解得清晰透彻,而且案例非常贴近实际开发场景,让我能够立刻将所学应用到自己的项目中。尤其是它对于镜像构建的讲解,让我彻底理解了Dockerfile的强大之处,以往那些繁琐的环境配置和依赖管理,现在都能通过几行代码轻松搞定,这简直是解放生产力的神器。而且,作者在讲解过程中,穿插了一些关于容器化思想的讨论,这让我不仅仅停留在“怎么用”的层面,更能理解“为什么这么用”,这种由浅入深、由表及里的讲解方式,无疑是这本书最大的亮点。读完之后,我感觉自己仿佛被打通了任督二脉,对Docker的理解达到了一个新的高度,也充满了继续探索Docker生态的信心。
非常不错,但是并不适合从零入门,建议先看《第一本Docker书》再看这本,循序渐进
本书很基础,例子不算太多,但是讲的很明白,挺适合当入门书的。只是自己单机用用,所以后面swarm部门也没自己看。
对于我这个纯小白来说,这本书无疑是我的技术导师,由浅入深,步步为营!书中例子大部分都可以运行,也经常上网找办法,比如配置加速镜像,这书中是不讲的,还有配置swarm集群时,我用了virtualbox和docker machine来创建本地多虚机环境(电脑比较水),配置ucp 客户端连接docker daemon的时候,我用本机节点作为服务端,docker machine虚机作为客户端等等,即使作者讲的很明白,但真动手的话麻烦还是挺多的。书中有几处明显错误,好在不难猜正确的是什么,单就翻译质量来说,绝对杠杠的!阅读流畅无压力!自己的网络是弱项 学习Docker EE时有些吃力,好在自己坚持下来了,再次感谢有这么一本书把我引上docker之路,让我有段快乐的学习时光,学习让我自信,学习让我充实。
实质内容不多,如果想快速上手docker的话建议看其他书籍
本书作者Nigel Poulton,亚马逊畅销图书作者,存储专家,Docker技术先驱。Nigel有丰富的运维技术经验,著有多部容器相关的图书,并开设了视频培训课程,在业界有非常大的影响力