正版 Docker实战派 容器入门七步法 Docker核心原理持续集成与发布企业级应用案例书 企业级应用开发技术案例 编程web程序计算机书
¥85.00
运费: | 免运费 |
商品详情
书名:Docker实战派——容器入门七步法
定价:118.0
ISBN:9787121431456
作者:王嘉涛
版次:第1版
出版时间:2022-04
内容提要:
云原生时代,应用变得越来越强大,与此同时,它的复杂度也在呈指数级上升。希望实现基础设施和流程现代化,甚至组织文化现代化的企业的*终目标是仔细选择*适合其具体情况的云技术。在现代化的企业应用中,集群部署、隔离环境、灰度发布、服务网格及动态扩容/缩容缺一不可,而Docker 技术则是其中间的必要桥梁。 本书将围绕Docker 技术展开介绍,通过“七步法”为读者构建完善的学习体系。开篇先通过“盖房子”的故事展开,让读者迅速了解Docker 是什么、能做什么。然后补充一些与Docker 技术相关的基础知识,包含Linux、Shell、Nginx 及网络调试基础,为读者的后续学习扫除障碍。*后通过示例帮助读者进行Docker 容器化体验。“授人以鱼,不如授人以渔”。本书通过剖析Docker 的核心原理、持续集成与发布及企业级应用案例,一步步为读者打造“通向企业级应用”的阶梯。 本书内容详尽,由浅入深,案例丰富。
作者简介:
王嘉涛 北京百家互联科技有限公司,前端基础技术负责人李传龙 百度在线网络技术(北京)有限公司高级工程师卢桂周 北京拉勾网络技术有限公司高级工程师
目录:
★★第1章 快速了解Docker /1
1.1 Docker简介 /1
1.1.1 通过“盖房子”来理解Docker—— 一次构建,处处运行 /1
1.1.2 Docker的适用人群 /3
1.1.3 Docker能解决什么问题 /4
1.1.4 如何快速入门 /6
1.2 Docker的基本组成 /7
1.2.1 Docker的三大组成部分 /7
1.2.2 Docker的三大核心概念 /8
1.3 入门必备基础知识 /10
1.3.1 Linux基本操作 /10
1.3.2 Shell基础命令 /22
1.3.3 网络调试基础 /27
1.3.4 Nginx配置 /34
1.3.5 区分物理机、虚拟机与容器 /41
1.4 安装Docker /44
1.4.1 在Windows中安装 /44
1.4.2 在macOS中安装 /47
1.4.3 在CentOS中安装 /49
1.4.4 在Ubuntu中安装 /50
1.4.5 配置镜像加速 /52
1.5 使用Docker桌面端工具 /54
1.5.1 基本功能介绍 /54
1.5.2 使用镜像仓库 /61
1.6 Docker常用命令1——镜像命令 /65
1.6.1 Dockerfile配置示例 /65
1.6.2 FROM命令 /66
1.6.3 MAINTAINER命令 /66
1.6.4 RUN命令 /67
1.6.5 ADD命令和COPY命令 /69
1.6.6 ENV命令 /69
1.6.7 WORKDIR命令 /70
1.6.8 EXPOSE命令 /70
1.6.9 CMD命令和ENTRYPOINT命令 /70
1.6.10 VOLUME命令 /71
1.7 Docker常用命令2——容器命令 /72
1.7.1 clone命令 /72
1.7.2 build命令 /73
1.7.3 run命令 /73
1.7.4 share命令 /75
1.7.5 push命令 /76
1.8 本章小结 /77
★★第2章 开始**个Docker项目 /78
2.1 项目开发的主要阶段 /78
2.1.1 一般项目开发的主要阶段 /78
2.1.2 Docker项目开发的主要阶段 /79
2.2 项目前期准备 /80
2.2.1 准备相关环境 /80
2.2.2 准备项目 /81
2.3 对Web项目进行容器化改造 /84
2.3.1 构建项目 /84
2.3.2 配置Nginx文件 /85
2.3.3 创建和配置Dockerfile文件 /88
2.4 构建项目镜像 /89
2.4.1 准备启动环境 /89
2.4.2 构建镜像 /89
2.5 在容器中运行项目镜像 /91
2.5.1 运行容器 /92
2.5.2 管理容器 /92
2.5.3 在浏览器中打开 /93
2.5.4 进程管理 /93
2.5.5 日志查看 /96
2.6 管理镜像 /97
2.6.1 了解镜像仓库 /97
2.6.2 *大的镜像仓库——Docker Hub /98
2.6.3 把项目镜像推送到远程镜像仓库中 /98
2.7 发布项目 /102
2.7.1 准备服务器环境 /102
2.7.2 部署项目 /103
2.7.3 确定容器是否运行正常 /103
2.7.4 线上验证 /105
2.8 本章小结 /106
★★第3章 了解Docker的核心原理 /107
3.1 熟悉Docker架构 /107
3.2 Linux的Namespace机制 /112
3.3 Linux底层的Cgroup隔离机制 /117
3.4 容器的生命周期 /120
3.4.1 容器的生命状态 /121
3.4.2 容器状态之间的关系 /121
3.4.3 终止进程的SIGKILL信号和SIGTERM信号 /123
3.5 Docker的网络与通信 /124
3.5.1 网络驱动程序 /124
3.5.2 网桥网络 /125
3.5.3 覆盖网络 /127
3.5.4 Macvlan网络 /131
3.5.5 禁用Docker上的网络 /133
3.6 Docker UnionFS的原理 /135
3.6.1 UnionFS的概念 /135
3.6.2 加载Docker镜像的原理 /135
3.7 Device Mapper存储 /138
3.7.1 镜像分层和共享 /138
3.7.2 在Docker中配置devicemapper /139
3.7.3 配置loop-lvm模式 /140
3.7.4 配置direct-lvm模式 /142
3.7.5 *佳实践 /146
3.8 Compose容器编排 /146
3.8.1 安装Docker Compose /147
3.8.2 基本使用 /148
3.8.3 验证服务是否正常 /150
3.8.4 绑定目录与更新应用 /150
3.8.5 在后台启动服务 /151
3.8.6 部署分布式应用 /151
3.9 Docker源码分析 /156
3.9.1 给初学者的建议 /156
3.9.2 学习Docker源码的思路 /157
3.9.3 容器是如何被启动的 /158
3.9.4 Docker Client是如何访问Docker Server的 /165
3.9.5 Docker Engine是如何工作的 /166
3.10 本章小结 /169
★★第4章 趁热打铁,Docker项目实战 /170
4.1 前端环境准备 /170
4.1.1 Web服务器——安装Nginx /170
4.1.2 服务器端环境——安装Node.js /172
4.2 前端应用1——Web技术栈 /174
4.2.1 Web框架1——React实战 /174
4.2.2 Web框架2——Vue.js实战 /176
4.2.3 Web框架3——其他 /177
4.3 前端应用2——Node.js /180
4.3.1 客户端渲染——CSR实战 /180
4.3.2 服务器端渲染——SSR实战 /180
4.4 后端环境准备 /182
4.4.1 注册中心——ZooKeeper /182
4.4.2 消息队列框架——Kafka /185
4.4.3 微服务框架——Dubbo /188
4.4.4 数据库1——安装Redis /191
4.4.5 数据库2——安装MySQL /192
4.4.6 数据库3——安装MongoDB /193
4.5 后端容器1——Java技术栈 /194
4.5.1 Java常用框架 /194
4.5.2 Java微服务容器化实战——Spring Boot /197
4.5.3 Java技术栈改造的常见问题 /202
4.6 后端容器2——Go语言技术栈 /204
4.6.1 Go语言常用框架 /204
4.6.2 Web框架改造1——Gin实战 /205
4.6.3 Web框架改造2——Beego实战 /209
4.6.4 Go语言技术栈改造的常见问题 /212
4.7 后端容器3——Python技术栈 /213
4.7.1 Python常见框架 /214
4.7.2 Web框架改造——Django实战 /215
4.7.3 微服务框架改造——Nameko实战 /220
4.7.4 Python技术栈改造的常见问题 /223
4.8 Docker测试实战 /224
4.8.1 Docker自动化测试 /225
4.8.2 使用Docker测试静态网站 /227
4.8.3 使用Docker进行UI自动化测试 /230
4.9 本章小结 /237
★★第5章 Docker的持续集成与发布 /238
5.1 准备镜像仓库 /238
5.1.1 仓库选型 /238
5.1.2 原生Docker仓库 /239
5.1.3 Harbor镜像仓库 /240
5.2 初始化容器配置文件 /244
5.2.1 生成Dockerfile文件 /244
5.2.2 Dockerfile文件配置的*佳实践 /245
5.3 通过Jenkins持续集成Docker /248
5.3.1 部署Jenkins /248
5.3.2 创建Jenkins流水线 /250
5.3.3 持续集成Docker /252
5.3.4 前端缓存优化 /255
5.4 通过Jenkins发布Docker /257
5.4.1 使用Jenkins流水线部署容器 /258
5.4.2 基于Jenkins Job的多步构建 /260
5.5 部署Docker容器监控 /262
5.5.1 容器监控的原理 /262
5.5.2 cAdvisor的部署与应用 /263
5.6 本章小结 /265
★★第6章 Docker的高级应用 /266
6.1 Docker的容器与进程 /266
6.1.1 容器是临时的 /266
6.1.2 进程的概念 /267
6.1.3 容器与进程 /269
6.2 Docker的文件存储与备份 /273
6.2.1 数据文件的存储 /273
6.2.2 卷存储 /274
6.2.3 绑定挂载 /276
6.2.4 tmpfs挂载 /277
6.2.5 数据文件的备份 /277
6.3 Docker的网络配置 /278
6.3.1 Flannel网络 /279
6.3.2 Weave网络 /280
6.3.3 Open vSwitch /281
6.3.4 Calico网络 /281
6.4 Docker的镜像优化 /281
6.4.1 常规优化手段 /282
6.4.2 案例实战 /287
6.5 Docker的安全策略与加固 /292
6.5.1 Docker的安全策略 /292
6.5.2 镜像安全 /293
6.5.3 容器网络的安全性 /294
6.5.4 网络攻击与防范 /294
6.6 Docker的集群管理1——Swarm /295
6.6.1 Swarm集群管理1——Docker原生管理 /295
6.6.2 Swarm集群管理2——Swarm集群搭建 /297
6.6.3 Swarm集群管理3——Swarm WordPress部署 /302
6.7 Docker的集群管理2——Kubernetes /303
6.7.1 Kubernetes容器编排1——简介 /303
6.7.2 Kubernetes容器编排2——架构 /304
6.7.3 Kubernetes容器编排3——安装 /306
6.7.4 Kubernetes容器编排4——基本使用 /310
6.7.5 Kubernetes应用实践1——Kafka容器编排 /315
6.7.6 Kubernetes应用实践2——Redis容器编排 /330
6.7.7 Kubernetes应用实践3——部署监控系统 /334
6.8 本章小结 /337
★★第7章 手把手打造企业级应用 /338
7.1 企业级云原生的持续交付模型——GitOps实战 /338
7.1.1 GitOps的兴起 /338
7.1.2 GitOps流水线 /340
7.1.3 GitOps*佳实践 /341
7.1.4 GitOps与可观测性 /341
7.1.5 GitOps的优势 /342
7.2 企业级容器化标准 /343
7.2.1 容器化的目标 /343
7.2.2 架构选型1——服务暴露 /344
7.2.3 架构选型2——网络选型 /348
7.2.4 架构选型3——存储系统 /349
7.2.5 服务治理1——部署发布 /356
7.2.6 服务治理2——服务监控 /358
7.2.7 服务治理3——日志采集 /360
7.2.8 服务治理4——链路追踪 /366
7.2.9 可靠性保障1——弹性部署 /368
7.2.10 可靠性保障2——集群 可靠性 /370
7.3 企业级方案1——微服务应用实践 /372
7.3.1 应用演变过程中的痛点 /372
7.3.2 微服务架构设计 /376
7.3.3 微服务容器化的难点 /381
7.3.4 服务网格1——服务网格与微服务 /384
7.3.5 服务网格2——使用Istio方案 /386
7.3.6 常见问题及解决方案 /395
7.4 企业级方案2——打造多项目并行隔离环境 /401
7.4.1 项目并行开发的痛点 /401
7.4.2 容器化隔离环境方案 /403
7.4.3 用Docker + Jenkins解决工程化问题 /408
7.4.4 实现隔离插件 /414
7.4.5 配置Nginx Cookie识别与代理 /417
7.4.6 使用Kustomize对Kubernetes进行声明式管理 /418
7.5 本章小结 /421
定价:118.0
ISBN:9787121431456
作者:王嘉涛
版次:第1版
出版时间:2022-04
内容提要:
云原生时代,应用变得越来越强大,与此同时,它的复杂度也在呈指数级上升。希望实现基础设施和流程现代化,甚至组织文化现代化的企业的*终目标是仔细选择*适合其具体情况的云技术。在现代化的企业应用中,集群部署、隔离环境、灰度发布、服务网格及动态扩容/缩容缺一不可,而Docker 技术则是其中间的必要桥梁。 本书将围绕Docker 技术展开介绍,通过“七步法”为读者构建完善的学习体系。开篇先通过“盖房子”的故事展开,让读者迅速了解Docker 是什么、能做什么。然后补充一些与Docker 技术相关的基础知识,包含Linux、Shell、Nginx 及网络调试基础,为读者的后续学习扫除障碍。*后通过示例帮助读者进行Docker 容器化体验。“授人以鱼,不如授人以渔”。本书通过剖析Docker 的核心原理、持续集成与发布及企业级应用案例,一步步为读者打造“通向企业级应用”的阶梯。 本书内容详尽,由浅入深,案例丰富。
作者简介:
王嘉涛 北京百家互联科技有限公司,前端基础技术负责人李传龙 百度在线网络技术(北京)有限公司高级工程师卢桂周 北京拉勾网络技术有限公司高级工程师
目录:
★★第1章 快速了解Docker /1
1.1 Docker简介 /1
1.1.1 通过“盖房子”来理解Docker—— 一次构建,处处运行 /1
1.1.2 Docker的适用人群 /3
1.1.3 Docker能解决什么问题 /4
1.1.4 如何快速入门 /6
1.2 Docker的基本组成 /7
1.2.1 Docker的三大组成部分 /7
1.2.2 Docker的三大核心概念 /8
1.3 入门必备基础知识 /10
1.3.1 Linux基本操作 /10
1.3.2 Shell基础命令 /22
1.3.3 网络调试基础 /27
1.3.4 Nginx配置 /34
1.3.5 区分物理机、虚拟机与容器 /41
1.4 安装Docker /44
1.4.1 在Windows中安装 /44
1.4.2 在macOS中安装 /47
1.4.3 在CentOS中安装 /49
1.4.4 在Ubuntu中安装 /50
1.4.5 配置镜像加速 /52
1.5 使用Docker桌面端工具 /54
1.5.1 基本功能介绍 /54
1.5.2 使用镜像仓库 /61
1.6 Docker常用命令1——镜像命令 /65
1.6.1 Dockerfile配置示例 /65
1.6.2 FROM命令 /66
1.6.3 MAINTAINER命令 /66
1.6.4 RUN命令 /67
1.6.5 ADD命令和COPY命令 /69
1.6.6 ENV命令 /69
1.6.7 WORKDIR命令 /70
1.6.8 EXPOSE命令 /70
1.6.9 CMD命令和ENTRYPOINT命令 /70
1.6.10 VOLUME命令 /71
1.7 Docker常用命令2——容器命令 /72
1.7.1 clone命令 /72
1.7.2 build命令 /73
1.7.3 run命令 /73
1.7.4 share命令 /75
1.7.5 push命令 /76
1.8 本章小结 /77
★★第2章 开始**个Docker项目 /78
2.1 项目开发的主要阶段 /78
2.1.1 一般项目开发的主要阶段 /78
2.1.2 Docker项目开发的主要阶段 /79
2.2 项目前期准备 /80
2.2.1 准备相关环境 /80
2.2.2 准备项目 /81
2.3 对Web项目进行容器化改造 /84
2.3.1 构建项目 /84
2.3.2 配置Nginx文件 /85
2.3.3 创建和配置Dockerfile文件 /88
2.4 构建项目镜像 /89
2.4.1 准备启动环境 /89
2.4.2 构建镜像 /89
2.5 在容器中运行项目镜像 /91
2.5.1 运行容器 /92
2.5.2 管理容器 /92
2.5.3 在浏览器中打开 /93
2.5.4 进程管理 /93
2.5.5 日志查看 /96
2.6 管理镜像 /97
2.6.1 了解镜像仓库 /97
2.6.2 *大的镜像仓库——Docker Hub /98
2.6.3 把项目镜像推送到远程镜像仓库中 /98
2.7 发布项目 /102
2.7.1 准备服务器环境 /102
2.7.2 部署项目 /103
2.7.3 确定容器是否运行正常 /103
2.7.4 线上验证 /105
2.8 本章小结 /106
★★第3章 了解Docker的核心原理 /107
3.1 熟悉Docker架构 /107
3.2 Linux的Namespace机制 /112
3.3 Linux底层的Cgroup隔离机制 /117
3.4 容器的生命周期 /120
3.4.1 容器的生命状态 /121
3.4.2 容器状态之间的关系 /121
3.4.3 终止进程的SIGKILL信号和SIGTERM信号 /123
3.5 Docker的网络与通信 /124
3.5.1 网络驱动程序 /124
3.5.2 网桥网络 /125
3.5.3 覆盖网络 /127
3.5.4 Macvlan网络 /131
3.5.5 禁用Docker上的网络 /133
3.6 Docker UnionFS的原理 /135
3.6.1 UnionFS的概念 /135
3.6.2 加载Docker镜像的原理 /135
3.7 Device Mapper存储 /138
3.7.1 镜像分层和共享 /138
3.7.2 在Docker中配置devicemapper /139
3.7.3 配置loop-lvm模式 /140
3.7.4 配置direct-lvm模式 /142
3.7.5 *佳实践 /146
3.8 Compose容器编排 /146
3.8.1 安装Docker Compose /147
3.8.2 基本使用 /148
3.8.3 验证服务是否正常 /150
3.8.4 绑定目录与更新应用 /150
3.8.5 在后台启动服务 /151
3.8.6 部署分布式应用 /151
3.9 Docker源码分析 /156
3.9.1 给初学者的建议 /156
3.9.2 学习Docker源码的思路 /157
3.9.3 容器是如何被启动的 /158
3.9.4 Docker Client是如何访问Docker Server的 /165
3.9.5 Docker Engine是如何工作的 /166
3.10 本章小结 /169
★★第4章 趁热打铁,Docker项目实战 /170
4.1 前端环境准备 /170
4.1.1 Web服务器——安装Nginx /170
4.1.2 服务器端环境——安装Node.js /172
4.2 前端应用1——Web技术栈 /174
4.2.1 Web框架1——React实战 /174
4.2.2 Web框架2——Vue.js实战 /176
4.2.3 Web框架3——其他 /177
4.3 前端应用2——Node.js /180
4.3.1 客户端渲染——CSR实战 /180
4.3.2 服务器端渲染——SSR实战 /180
4.4 后端环境准备 /182
4.4.1 注册中心——ZooKeeper /182
4.4.2 消息队列框架——Kafka /185
4.4.3 微服务框架——Dubbo /188
4.4.4 数据库1——安装Redis /191
4.4.5 数据库2——安装MySQL /192
4.4.6 数据库3——安装MongoDB /193
4.5 后端容器1——Java技术栈 /194
4.5.1 Java常用框架 /194
4.5.2 Java微服务容器化实战——Spring Boot /197
4.5.3 Java技术栈改造的常见问题 /202
4.6 后端容器2——Go语言技术栈 /204
4.6.1 Go语言常用框架 /204
4.6.2 Web框架改造1——Gin实战 /205
4.6.3 Web框架改造2——Beego实战 /209
4.6.4 Go语言技术栈改造的常见问题 /212
4.7 后端容器3——Python技术栈 /213
4.7.1 Python常见框架 /214
4.7.2 Web框架改造——Django实战 /215
4.7.3 微服务框架改造——Nameko实战 /220
4.7.4 Python技术栈改造的常见问题 /223
4.8 Docker测试实战 /224
4.8.1 Docker自动化测试 /225
4.8.2 使用Docker测试静态网站 /227
4.8.3 使用Docker进行UI自动化测试 /230
4.9 本章小结 /237
★★第5章 Docker的持续集成与发布 /238
5.1 准备镜像仓库 /238
5.1.1 仓库选型 /238
5.1.2 原生Docker仓库 /239
5.1.3 Harbor镜像仓库 /240
5.2 初始化容器配置文件 /244
5.2.1 生成Dockerfile文件 /244
5.2.2 Dockerfile文件配置的*佳实践 /245
5.3 通过Jenkins持续集成Docker /248
5.3.1 部署Jenkins /248
5.3.2 创建Jenkins流水线 /250
5.3.3 持续集成Docker /252
5.3.4 前端缓存优化 /255
5.4 通过Jenkins发布Docker /257
5.4.1 使用Jenkins流水线部署容器 /258
5.4.2 基于Jenkins Job的多步构建 /260
5.5 部署Docker容器监控 /262
5.5.1 容器监控的原理 /262
5.5.2 cAdvisor的部署与应用 /263
5.6 本章小结 /265
★★第6章 Docker的高级应用 /266
6.1 Docker的容器与进程 /266
6.1.1 容器是临时的 /266
6.1.2 进程的概念 /267
6.1.3 容器与进程 /269
6.2 Docker的文件存储与备份 /273
6.2.1 数据文件的存储 /273
6.2.2 卷存储 /274
6.2.3 绑定挂载 /276
6.2.4 tmpfs挂载 /277
6.2.5 数据文件的备份 /277
6.3 Docker的网络配置 /278
6.3.1 Flannel网络 /279
6.3.2 Weave网络 /280
6.3.3 Open vSwitch /281
6.3.4 Calico网络 /281
6.4 Docker的镜像优化 /281
6.4.1 常规优化手段 /282
6.4.2 案例实战 /287
6.5 Docker的安全策略与加固 /292
6.5.1 Docker的安全策略 /292
6.5.2 镜像安全 /293
6.5.3 容器网络的安全性 /294
6.5.4 网络攻击与防范 /294
6.6 Docker的集群管理1——Swarm /295
6.6.1 Swarm集群管理1——Docker原生管理 /295
6.6.2 Swarm集群管理2——Swarm集群搭建 /297
6.6.3 Swarm集群管理3——Swarm WordPress部署 /302
6.7 Docker的集群管理2——Kubernetes /303
6.7.1 Kubernetes容器编排1——简介 /303
6.7.2 Kubernetes容器编排2——架构 /304
6.7.3 Kubernetes容器编排3——安装 /306
6.7.4 Kubernetes容器编排4——基本使用 /310
6.7.5 Kubernetes应用实践1——Kafka容器编排 /315
6.7.6 Kubernetes应用实践2——Redis容器编排 /330
6.7.7 Kubernetes应用实践3——部署监控系统 /334
6.8 本章小结 /337
★★第7章 手把手打造企业级应用 /338
7.1 企业级云原生的持续交付模型——GitOps实战 /338
7.1.1 GitOps的兴起 /338
7.1.2 GitOps流水线 /340
7.1.3 GitOps*佳实践 /341
7.1.4 GitOps与可观测性 /341
7.1.5 GitOps的优势 /342
7.2 企业级容器化标准 /343
7.2.1 容器化的目标 /343
7.2.2 架构选型1——服务暴露 /344
7.2.3 架构选型2——网络选型 /348
7.2.4 架构选型3——存储系统 /349
7.2.5 服务治理1——部署发布 /356
7.2.6 服务治理2——服务监控 /358
7.2.7 服务治理3——日志采集 /360
7.2.8 服务治理4——链路追踪 /366
7.2.9 可靠性保障1——弹性部署 /368
7.2.10 可靠性保障2——集群 可靠性 /370
7.3 企业级方案1——微服务应用实践 /372
7.3.1 应用演变过程中的痛点 /372
7.3.2 微服务架构设计 /376
7.3.3 微服务容器化的难点 /381
7.3.4 服务网格1——服务网格与微服务 /384
7.3.5 服务网格2——使用Istio方案 /386
7.3.6 常见问题及解决方案 /395
7.4 企业级方案2——打造多项目并行隔离环境 /401
7.4.1 项目并行开发的痛点 /401
7.4.2 容器化隔离环境方案 /403
7.4.3 用Docker + Jenkins解决工程化问题 /408
7.4.4 实现隔离插件 /414
7.4.5 配置Nginx Cookie识别与代理 /417
7.4.6 使用Kustomize对Kubernetes进行声明式管理 /418
7.5 本章小结 /421
- 电子工业出版社有限公司
- 电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
- 扫描二维码,访问我们的微信店铺