Docker开发指南

Docker开发指南 pdf epub mobi txt 电子书 下载 2025

[英] 阿德里安·莫阿特(Adrian Mouat) 著,黄彦邦 译
图书标签:
  • Docker
  • 容器化
  • DevOps
  • 微服务
  • 应用部署
  • 持续集成
  • 持续交付
  • Linux
  • 开发运维
  • 云原生
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 人民邮电出版社
ISBN:9787115449573
版次:1
商品编码:12174050
包装:平装
丛书名: 图灵程序设计丛书
开本:16开
出版时间:2017-03-01
用纸:胶版纸
页数:271
正文语种:中文

具体描述

编辑推荐

Docker容器给软件的开发、发布和运行提供了简单、快速和可靠的方法,尤其是在动态和分布式的环境中。通过这本实战指南,你将学习到为什么容器如此重要,Docker能带来哪些好处,以及怎样把它变成开发流程的一部分。

本书适合软件开发者、运维工程师和系统管理员,尤其适合对DevOps模式感兴趣的读者。作者将带领你从基础知识出发,直到了解如何在多主机系统上运行数十个拥有联网和调度能力的容器系统,重在让你掌握使用Docker来开发、测试以及部署Web应用。

- 从构建和部署简单Web应用开始了解Docker
- 使用持续部署技术,把应用一天多次推送到生产环境
- 学习各种不同的选项和技术,实现多容器的日志记录和监控
- 剖析联网和服务发现:容器之间如何寻找对方,以及怎样把它们连接起来
- 通过运用容器的编排和集群功能,解决负载均衡、扩展、故障切换以及调度的问题
- 遵守纵深防御和zui小权限的原则,确保系统安全
- 利用容器构建微服务架构

内容简介

Docker容器轻量和可移植的特性尤其适用于动态和分布式的环境,它的兴起给软件开发流程带来了一场革命。Docker开发指南对Docker进行了全面讲解,包括开发、生产以至维护的整个软件生命周期,并对其中可能出现的一些问题进行了探讨,如软件版本差异、开发环境与生产环境的差异、系统安全问题,等等。

作者简介

Adrian Mouat,Container Solutions公司首席科学家。参与过很多软件项目,既有小型的Web应用,也有大型数据分析软件。

【译者简介】

黄彦邦(Anthony Wong)

Linux开发专家,热衷于开源技术,从事Linux相关开发工作十多年,曾参与多个大型开源项目,如Debian GNU/Linux和Ubuntu,提交补丁无数。以推动Debian系统中文化以及网站和文档翻译为目标,1998年成为中国首位Debian计划官方开发者。

个人网站:http://blog.anthonywong.net

目录

前言 xi
第一部分 背景与基础
第 1 章 何谓容器,为何需要它 3
1.1 容器与虚拟机的比较 4
1.2 Docker与容器 5
1.3 Docker的历史 7
1.4 插件与基础设施 8
1.5 64位Linux 9
第 2 章 安装 10
2.1 在Linux上安装 Docker 10
2.1.1 将SELinux置于宽容模式下运行 11
2.1.2 不使用sudo命令执行Docker 11
2.2 在Mac OS及Windows上安装Docker 12
2.3 快速确认 13
第 3 章 迈出第一步 15
3.1 运行第一个镜像 15
3.2 基本命令 16
3.3 通过Dockerfile创建镜像 20
3.4 使用寄存服务 22
3.5 使用Redis官方镜像 24
3.6 总结 27
第 4 章 Docker基本概念 28
4.1 Docker系统架构 28
4.1.1 底层技术 29
4.1.2 周边技术 30
4.1.3 Docker托管 31
4.2 镜像是如何生成的 32
4.2.1 构建环境的上下文 32
4.2.2 镜像层 33
4.2.3 缓存 35
4.2.4 基础镜像 35
4.2.5 Dockerfile指令 37
4.3 使容器与世界相连 39
4.4 容器互联 40
4.5 利用数据卷和数据容器管理数据 41
4.5.1 共享数据 43
4.5.2 数据容器 44
4.6 Docker常用命令 45
4.6.1 run命令 46
4.6.2 容器管理 48
4.6.3 Docker信息 50
4.6.4 容器信息 50
4.6.5 镜像管理 52
4.6.6 使用寄存服务器 54
4.7 总结 55
第二部分 Docker与软件生命周期
第 5 章 在开发中应用Docker 59
5.1 说声“Hello World!” 59
5.2 通过Compose实现自动化 67
5.3 总结 69
第 6 章 创建一个简单的Web应用 71
6.1 创建一个基本网页 72
6.2 利用现有镜像 73
6.3 实现缓存功能 78
6.4 微服务 81
6.5 总结 81
第 7 章 镜像分发 82
7.1 镜像及镜像库的命名方式 82
7.2 Docker Hub 83
7.3 自动构建 85
7.4 私有分发 86
7.4.1 运行自己的寄存服务 86
7.4.2 商业寄存服务 92
7.5 缩减镜像大小 92
7.6 镜像出处 94
7.7 总结 94
第 8 章 Docker持续集成与测试 95
8.1 为identidock添加单元测试 95
8.2 创建Jenkins容器 100
8.3 推送镜像 106
8.3.1 给镜像正确的标签 106
8.3.2 准生产及生产环境 108
8.3.3 镜像数量激增的问题 108
8.3.4 使用Docker部署Jenkins slaves 109
8.4 备份Jenkins数据 109
8.5 持续集成的托管解决方案 109
8.6 测试与微服务 110
8.7 总结 111
第 9 章 部署容器 113
9.1 通过Docker Machine配置资源 114
9.2 使用代理 117
9.3 执行选项 122
9.3.1 shell脚本 122
9.3.2 使用进程管理器(或用systemd控制所有进程) 124
9.3.3 使用配置管理工具 127
9.4 主机配置 130
9.4.1 选择操作系统 130
9.4.2 选择存储驱动程序 130
9.5 专门的托管方案 132
9.5.1 Triton 132
9.5.2 谷歌容器引擎 134
9.5.3 亚马逊EC2容器服务 135
9.5.4 Giant Swarm 136
9.6 持久性数据和生产环境容器 138
9.7 分享秘密信息 139
9.7.1 在镜像中保存秘密信息 139
9.7.2 通过环境变量传递密钥 139
9.7.3 通过数据卷传递密钥 140
9.7.4 使用键值存储 140
9.8 网络连接 141
9.9 生产环境的寄存服务 141
9.10 持续部署 / 交付 141
9.11 总结 142
第 10 章 日志记录和监控 143
10.1 日志记录 144
10.1.1 Docker默认的日志记录 144
10.1.2 日志汇总 145
10.1.3 使用ELK进行日志记录 146
10.1.4 通过syslog实现日志管理 155
10.1.5 从文件抓取日志 160
10.2 监控和警报 161
10.2.1 使用Docker工具进行监测 161
10.2.2 cAdvisor 162
10.2.3 集群解决方案 163
10.3 商用的监听及日志记录解决方案 166
10.4 总结 166
第三部分 工具和技术
第 11 章 联网和服务发现 169
11.1 大使容器 170
11.2 服务发现 173
11.2.1 etcd 173
11.2.2 SkyDNS 177
11.2.3 Consul 181
11.2.4 服务注册 185
11.2.5 其他解决方案 186
11.3 联网选项 187
11.3.1 网桥模式 187
11.3.2 主机模式 188
11.3.3 容器模式 188
11.3.4 未联网模式 188
11.4 全新的Docker联网功能 188
11.5 网络解决方案 190
11.5.1 Overlay 191
11.5.2 Weave 193
11.5.3 Flannel 196
11.5.4 Calico项目 201
11.6 总结 205
第 12 章 编排、集群和管理 207
12.1 集群和编排工具 208
12.1.1 Swarm 208
12.1.2 fleet 214
12.1.3 Kubernetes 219
12.1.4 Mesos和Marathon 226
12.2 容器管理平台 235
12.2.1 Rancher 236
12.2.2 Clocker 237
12.2.3 Tutum 238
12.3 总结 239
第 13 章 容器安全与限制容器 241
13.1 需要考虑的事项 242
13.2 纵深防御 244
13.3 如何保护identidock 245
13.4 以主机隔离容器 246
13.5 进行更新 246
13.6 镜像出处 249
13.6.1 Docker摘要 250
13.6.2 Docker的内容信任机制 250
13.6.3 可复制及可信任的Dockerfile 254
13.7 安全建议 256
13.7.1 设置用户 256
13.7.2 限制容器联网 257
13.7.3 删除setuid和setgid的二进制文件 258
13.7.4 限制内存使用 259
13.7.5 限制CPU使用 260
13.7.6 限制重新启动 261
13.7.7 限制文件系统 261
13.7.8 限制内核能力 262
13.7.9 应用资源限制 263
13.8 运行加固内核 264
13.9 Linux安全模块 265
13.9.1 SELinux 265
13.9.2 AppArmor 268
13.10 审核 268
13.11 事件响应 269
13.12 未来特性 269
13.13 总结 270
作者简介 271
关于封面 271
《容器化部署实战:从入门到精通》 内容简介 在当今快速迭代的软件开发浪潮中,如何构建、部署和管理应用程序已成为一项至关重要的技能。本书《容器化部署实战:从入门到精通》旨在为您提供一套全面、深入的容器化解决方案,帮助您掌握现代应用交付的核心技术。我们不局限于单一工具,而是从更广阔的视角,系统地阐述容器化带来的革命性变化,以及如何在实际项目中落地应用。 本书将带领您踏上一段系统性的容器化学习之旅。我们将从容器化的基本概念出发,深入剖析其工作原理、核心优势以及与传统部署方式的显著区别。您将理解为什么容器化能够极大提升应用的部署效率、可移植性、可伸缩性和一致性,从而为构建更健壮、更敏捷的系统奠定坚实基础。 核心技术与实践 本书的核心内容将围绕着当下业界最流行、最成熟的容器技术展开。我们将深入探讨容器运行时环境的构建与配置,详细讲解如何创建和管理独立的、隔离的运行空间。这包括对镜像构建过程的深度解析,从基础操作系统的选择、依赖库的安装,到应用程序代码的打包,再到构建过程中的优化技巧,确保您能够构建出体积小巧、安全高效的镜像。我们将覆盖多种构建策略,例如多阶段构建(multi-stage builds),以最大限度地减少最终镜像的体积,并提升安全性。 本书还将重点关注容器编排的核心概念与实践。在分布式系统中,单个容器的管理很快会变得复杂。因此,我们将深入介绍领先的容器编排平台,如Kubernetes。您将学习到Kubernetes的架构、核心组件(如Pod、Deployment、Service、Namespace等)以及它们如何协同工作,实现大规模应用的自动化部署、扩展和管理。我们将详细讲解声明式配置的理念,以及如何使用YAML文件定义和管理您的应用生命周期。 除了Kubernetes,本书还会触及其他重要的容器编排和管理工具,以提供更全面的视角。例如,您将了解如何使用Helm来管理Kubernetes应用的生命周期,包括打包、安装、升级和回滚。我们还将探讨一些更轻量级的容器编排解决方案,以及在不同场景下选择合适工具的考量因素。 应用场景与最佳实践 本书不仅关注技术细节,更注重在实际应用场景中的落地。我们将通过丰富的案例分析,展示容器化技术如何在微服务架构、持续集成/持续部署(CI/CD)流水线、大数据处理、AI/ML模型部署等场景中发挥关键作用。您将学习如何将现有的单体应用迁移到容器化环境,如何设计和构建支持容器化部署的微服务,以及如何构建一个端到端的CI/CD流程,实现代码提交到生产环境部署的自动化。 在安全性方面,本书将提供一套完整的容器安全实践指南。您将了解如何构建安全可靠的容器镜像,如何管理容器的权限和网络隔离,如何使用安全策略来限制容器的行为,以及如何对容器集群进行安全审计和漏洞扫描。我们将讨论镜像扫描、运行时安全监控、网络策略配置、Secrets管理等关键安全措施。 性能优化与故障排除 为了帮助您构建高性能、高可用的容器化应用,本书将深入探讨性能优化的策略。您将学习如何监控容器的资源使用情况,识别性能瓶颈,并采取相应的优化措施,例如调整资源限制、优化应用程序代码、选择合适的存储卷类型等。 同时,本书还将为您提供一套系统的故障排除指南。在复杂的容器化环境中,故障的排查可能比传统环境更具挑战性。我们将详细讲解如何收集日志、如何使用调试工具、如何分析故障现象,以及如何利用容器编排平台的内置功能来诊断和解决问题。您将学习到如何分析Pod状态、查看容器日志、检查Deployment和Service配置、理解网络故障等常见问题。 内容框架预览 本书的内容结构清晰,循序渐进,旨在满足不同水平读者的学习需求: 第一部分:容器化基础 第一章:容器化时代的来临 为何选择容器化?传统部署的痛点与挑战。 容器化的核心概念:镜像、容器、仓库。 容器与虚拟机的对比。 容器化生态系统概览。 第二章:容器运行时剖析 容器运行时工作原理(如runc、containerd)。 Linux内核特性对容器的支持(namespaces, cgroups)。 容器安全基础。 第三章:镜像构建艺术 Dockerfile语法与最佳实践。 多阶段构建:优化镜像大小与安全性。 常用的基础镜像选择与优化。 镜像仓库的使用与管理(如Docker Hub, Harbor)。 第二部分:容器编排实战 第四章:Kubernetes入门 Kubernetes架构详解:Master节点与Worker节点。 核心组件:etcd, API Server, Controller Manager, Scheduler, Kubelet, Kube-proxy。 YAML文件:声明式配置的基础。 Pod:Kubernetes的最小部署单元。 第五章:工作负载管理 Deployment:管理无状态应用的部署与更新。 StatefulSet:管理有状态应用的部署与扩展。 DaemonSet:确保每个节点运行一个Pod副本。 Job与CronJob:批处理任务的执行。 第六章:服务发现与负载均衡 Service:为Pod提供稳定的网络访问。 Service类型:ClusterIP, NodePort, LoadBalancer, ExternalName。 Ingress:实现集群外部访问集群内部的服务。 第七章:存储与配置管理 Volume:容器数据的持久化。 PersistentVolume (PV) 与 PersistentVolumeClaim (PVC):存储资源的抽象。 StorageClass:动态供给存储。 ConfigMap:管理应用配置。 Secret:安全地管理敏感信息。 第三部分:高级应用与最佳实践 第八章:容器安全加固 安全镜像构建:最小化攻击面。 RBAC:Kubernetes访问控制。 Network Policies:控制Pod间的网络通信。 安全上下文(Security Context)。 运行时安全监控与审计。 第九章:CI/CD与容器化 将容器集成到CI/CD流程。 Jenkins, GitLab CI, GitHub Actions等工具在容器化部署中的应用。 自动化构建、测试与部署。 第十章:微服务架构与容器化 微服务的设计原则与容器化的契合。 服务网格(Service Mesh)简介(如Istio, Linkerd)。 API Gateway的设计与实现。 十一章:性能优化与监控 容器资源限制与请求。 Prometheus与Grafana:容器监控解决方案。 日志管理:ELK Stack, Loki。 性能调优案例分析。 十二章:故障排除与调试 Kubernetes集群与Pod的常见故障。 调试技巧与工具。 故障复盘与预防。 十三章:容器化生态系统探索 Helm:Kubernetes包管理。 Istio:服务网格的深入应用。 Serverless与容器。 边缘计算与容器。 目标读者 本书适合以下读者群体: 开发人员: 希望掌握如何将应用程序容器化,实现高效、一致的部署。 运维工程师: 致力于学习和实践容器编排技术,提升系统管理能力。 架构师: 寻求为现代应用设计和构建可伸缩、高可用的系统。 技术爱好者: 对容器化技术充满好奇,渴望深入了解其工作原理和应用。 通过阅读《容器化部署实战:从入门到精通》,您将不仅掌握容器化部署的理论知识,更能获得丰富的实战经验,能够独立设计、构建、部署和管理容器化应用,从而在快速发展的技术浪潮中保持领先地位。我们相信,这本书将成为您在容器化领域宝贵的参考指南。

用户评价

评分

读完这本书的某些章节,我脑海中涌现出的是一种豁然开朗的感觉。之前在实际工作中遇到过一些部署和环境一致性方面的问题,总是需要花费大量时间去排查,这本书提供的解决方案简直是及时雨。书中关于如何构建高效的Docker镜像的技巧,我之前尝试过一些,但总感觉效率不高,这本书里详细讲解了多阶段构建、层缓存优化等方法,让我茅塞顿开。尤其是关于如何编写Dockerfile的案例分析,每一个指令都解释得非常清楚,而且后面还提供了很多最佳实践,让我在实际操作时少走了很多弯路。我还在书中看到了一些关于如何利用Docker Compose来管理多个容器的介绍,这对于我目前正在进行的一个微服务项目来说,简直是福音。之前管理这些服务时,启动和停止都非常麻烦,有了Docker Compose,一切都变得井井有条。这本书的实用性真的非常强,感觉每一页都充满了干货,让我迫不及待地想把这些学到的知识应用到工作中去,解决那些困扰我已久的难题。

评分

这本书的封面设计很吸引人,深邃的蓝色背景搭配简洁的Docker鲸鱼Logo,一下子就抓住了我的眼球。我一直对容器化技术很感兴趣,但总觉得门槛有点高,不知道从何下手。拿到这本书后,迫不及待地翻开,里面的排版非常清晰,文字大小适中,阅读起来非常舒适。我特别喜欢它开篇介绍Docker的由来和发展历程的部分,让我对这项技术有了更宏观的认识,不再是零散的知识点。后面章节中,作者用了很多生动的比喻来解释Docker的核心概念,比如镜像、容器、仓库等等,这些比喻非常贴切,瞬间就把那些看似抽象的概念具象化了。我尤其对书中关于“容器化如何改变软件开发流程”的讨论印象深刻,它不仅仅是技术层面的介绍,更上升到了对整个行业发展趋势的洞察,让我对接下来的学习充满了期待。虽然我还没有深入到每一个技术细节,但仅仅是前几章的内容,就已经让我感觉这本书的价值远超我预期的。

评分

这本书给我最大的感受就是它的系统性和深度。我之前零散地接触过一些Docker的教程,但总觉得不成体系,学到的知识点也比较零碎。这本书不同,它从最基础的概念讲起,循序渐进地深入到高级应用,每一个章节都承接得非常自然。我特别欣赏书中对于Docker网络和存储管理的讲解,这部分内容通常比较晦涩难懂,但作者用清晰的图示和详细的解释,把它们讲得明明白白。书中关于如何配置Docker网络,实现容器间的互联互通,以及如何利用卷来实现数据的持久化和共享,都给了我很多启发。我印象最深的是书中介绍的关于Kubernetes的入门部分,虽然不是这本书的主体内容,但它作为一个延伸,为我打开了另一个更广阔的世界。这让我明白,Docker不仅仅是一个孤立的技术,更是构建现代化云原生应用的重要基石。这本书就像一座宝藏,每一次翻阅都能有新的发现和收获,让我对Docker及其生态有了更全面、更深刻的理解。

评分

这本书的语言风格非常独特,读起来一点也不枯燥。作者的文笔幽默风趣,常常在讲解技术的同时穿插一些有趣的小故事或者类比,让原本可能乏味的技术概念变得生动起来。我尤其喜欢书中关于Docker安全性的讨论,这部分内容往往容易被忽视,但作者却花了很大的篇幅来讲解,包括如何最小化镜像、如何管理敏感信息、如何进行容器隔离等等,这些都是保障生产环境安全的关键。书中还提供了一些实用的安全加固的脚本和工具,让我能够更直观地感受到安全的重要性,并且知道如何去实践。除了技术内容,书中对Docker在不同应用场景下的实际案例分析也做得非常出色,比如微服务架构、CI/CD流水线、大数据处理等等,这些案例让我能够更好地理解Docker在实际业务中的价值和应用。这本书不仅教会了我“怎么做”,更让我思考了“为什么这样做”,这种深入的思考让我对Docker的理解提升了一个层次。

评分

总的来说,这本书是一本非常值得推荐给所有对Docker感兴趣的开发者的书。它不仅仅是技术的堆砌,更包含了作者对整个软件开发生态的思考和理解。我尤其喜欢书中关于持续集成和持续部署(CI/CD)与Docker结合的部分,这部分内容对于提升开发效率和软件质量至关重要。书中详细介绍了如何利用Docker将CI/CD流程自动化,如何构建高效的CI/CD流水线,以及如何利用Docker来管理测试环境和生产环境,这些都给了我非常大的帮助。我还在书中看到了关于Docker Registry的使用指南,包括如何搭建私有Registry,如何管理镜像的生命周期等等,这些对于我管理和分发自己项目的Docker镜像非常有用。这本书让我明白了Docker在现代软件开发中的核心地位,它不仅仅是一个工具,更是一种思维方式。读完这本书,我感觉自己对Docker的掌握程度有了质的飞跃,也更有信心去应对未来工作中可能遇到的各种挑战。

评分

质量很好是正品小孩很喜欢赞赞赞!!!

评分

在乎别人说我们是否有利于促进企业文化一一回复

评分

质量不错,物流快。但是包装不是很好,如果价钱便宜一点就更好了

评分

书还是不错的,学到了很多新领域的知识,值得推荐给大家!

评分

太不负责任了,直接把我的快递丢到代理点了,谁都没有联系我们,等了大半天找了半天,看了半天脸色费了半天劲才找到

评分

书不厚,内容应该不错,看了以后再细细评价

评分

看着应该不错,比in action好点看着。

评分

挺好的,实用,对工作学习帮助大

评分

例子的版本比较新,内容也比较详尽。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou 等,本站所有链接都为正版商品购买链接。

© 2025 windowsfront.com All Rights Reserved. 静流书站 版权所有