用一本书掌握Docker与Kubernetes核心内容!!!



本书基于作者多年的教学与实践经验编写,分为上下两篇,共20章。

  • 上篇(第1~11章)介绍Docoker,包含:Docker入门、Docker的镜像、Docker的容器、Docker的网络通信、使用Docker Compose进行服务编排、使用Docker Machine进行远程管理、使用Docker Swarm构建集群、在Docker中实现持续集成与持续部署、基于Consul实现Docker的服务注册与发现、利用图形工具管理Docker及Docker应用实战。
  • 下篇(第12~20章)介绍Kubernetes,包含:Kubernetes体系架构、部署Kubernetes集群、Kubernetes中的最小可部署对象Pod、使用控制器管理Pod、通过Service访问Pod、持久化存储、Kubernetes的安全认证、Kubernetes中的日志收集与监控、Kubernetes集成与运维管理。

本书目录

上篇 Docker从原理到实战


第1章 Docker入门

1.1 为什么需要容器技术

1.2 Docker简介

1.3 Docker的体系架构与基本概念

1.4 安装Docker

1.4.1 安装Linux操作系统 /6

1.4.2 使用YUM方式安装Docker /16

1.4.3 使用二进制包方式安装Docker /18

1.4.4 验证Docker环境 /21

1.5 【实战】在Docker中部署第一个应用

第2章 Docker的镜像

2.1 什么是Docker的镜像

2.1.1 使用Docker默认的镜像存储路径 /27

2.1.2 自定义Docker的镜像存储路径 /28

2.2 使用Docker的公有镜像仓库

2.2.1 【实战】访问Docker官方的公有镜像仓库 /29

2.2.2 【实战】配置和使用阿里云Docker镜像加速仓库 /32

2.3 使用命令行工具管理Docker的镜像

2.4 构建自己的镜像

2.4.1 【实战】使用“docker commit”命令构建镜像 /36

2.4.2 【实战】使用Dockerfile文件构建镜像 /39

2.4.3 Dockerfile文件详解 /40

2.4.4 【实战】使用Dockerfile文件的综合案例 /42

2.5 搭建私有镜像仓库Harbor

2.5.1 安装Docker和Docker Compose /45

2.5.2 安装与配置Harbor /46

2.5.3 【实战】在Docker中使用Harbor /48

第3章 Docker的容器

3.1 Docker容器的基本概念与操作

3.2 Docker的日志

3.2.1 【实战】访问Docker引擎的日志 /53

3.2.2 【实战】访问Docker应用的日志 /54

3.3 管理容器的资源

3.3.1 什么是Linux CGroup /56

3.3.2 【实战】Docker对CPU的使用 /62

3.3.3 【实战】Docker对内存的使用 /64

3.3.4 【实战】Docker对I/O带宽的使用 /65

3.4 管理Docker容器中的数据

3.4.1 在Docker容器中实现数据管理的两种方式 /67

3.4.2 【实战】使用数据卷管理Docker容器中的数据 /68

3.4.3 【实战】使用数据卷容器管理Docker容器中的数据 /71

第4章 Docker的网络通信

4.1 Docker容器网络通信的基本原理

4.2 使用命令查看Docker的网络配置信息

4.3 Docker的4种网络通信模式

4.3.1 bridge模式 /80

4.3.2 host模式 /82

4.3.3 container模式 /83

4.3.4 none模式 /85

4.4 容器间的通信

4.4.1 【实战】通过IP地址进行通信 /86

4.4.2 【实战】通过Docker DNS Server进行通信 /87

4.4.3 【实战】通过Joined方式进行通信 /88

4.4.4 容器间的跨节点通信 /89

4.5 容器的网络访问控制

4.5.1 容器内的应用访问外部网络 /95

4.5.2 从外部网络访问容器内的应用 /96

第5章 使用Docker Compose进行服务编排

5.1 配置Docker Compose

5.2 进行服务编排

5.2.1 【实战】使用手动方式部署应用 /99

5.2.2 【实战】使用Docker Compose部署应用 /101

5.2.3 【实战】使用Docker Compose进行服务的在线扩容/缩容 /102

5.2.4 【实战】在Docker Compose中控制模块启动和停止的顺序 /104

5.3 Docker Compose中的网络

5.3.1 Docker Compose中的默认网络环境 /108

5.3.2 在Docker Compose中自定义模块的网络环境 /109

第6章 使用Docker Machine进行远程管理

6.1 使用Docker Machine

6.1.1 安装Docker Machine /112

6.1.2 在远端宿主机上安装Docker /112

6.2 Docker Machine的基本用法

6.2.1 【实战】使用Docker Machine的命令 /115

6.2.2 【实战】管理远端的Docker节点 /116

6.3 Docker Machine的高级用法

6.3.1 【实战】使用Docker Machine创建基于VirtualBox的虚拟主机 /118

6.3.2 【实战】使用Docker Machine创建基于vSphere的虚拟主机 /120

第7章 使用Docker Swarm构建集群

7.1 Docker Swarm集群的体系架构

7.2 构建Docker Swarm集群

7.3 在Docker Swarm集群中部署应用与HAProxy

7.3.1 【实战】在集群中部署应用 /126

7.3.2 【实战】测试集群的高可用性 /128

7.3.3 【实战】使用HAProxy为集群添加外部负载均衡功能 /130

7.3.4 【实战】实现服务的滚动更新 /131

7.4 Docker Swarm集群的数据持久化

7.4.1 【实战】通过volume实现集群的数据持久化 /133

7.4.2 【实战】通过NFS实现集群的数据持久化 /134

7.5 Docker Swarm集群的负载均衡

7.5.1 【实战】测试Docker Swarm集群的负载均衡 /138

7.5.2 选择Docker Swarm集群的负载均衡模式 /139

第8章 在Docker中实现持续集成与持续部署

8.1 什么是持续集成与持续部署(CI/CD)

8.2 Jenkins简介与部署

8.2.1 Docker与Jenkins集成的体系架构 /143

8.2.2 【实战】部署Jenkins /144

8.2.3 【实战】使用Jenkins部署第一个应用 /146

8.3 基于Jenkins实现Docker应用的持续集成与持续部署

8.3.1 【实战】准备私有代码仓库SVN /150

8.3.2 开发Dockerfile文件 /152

8.3.3 【实战】集成Jenkins和Docker /152

第9章 基于Consul实现Docker的服务注册与发现

9.1 服务的注册与发现

9.1.1 什么是服务的注册与发现 /155

9.1.2 为什么需要服务的注册与发现 /156

9.1.3 常见的服务注册中心 /159

9.2 注册中心Consul的基本使用

9.2.1 Consul的安装与启动 /160

9.2.2 【实战】使用JSON文件在Consul中注册服务 /161

9.2.3 【实战】使用API在Consul中注册服务 /163

9.3 集成Consul与Docker

9.3.1 Docker服务注册与发现的体系架构 /166

9.3.2 【实战】使用Registrator镜像实现Docker服务的注册 /167

9.3.3 【实战】使用Consul-Template实现Docker服务的发现 /170

第10章 利用图形工具管理Docker

10.1 单机环境中的Docker图形工具:Docker UI

10.1.1 部署Docker UI /173

10.1.2 【实战】使用Docker UI管理镜像与容器 /174

10.2 轻量级的Docker图形工具:Portainer

10.2.1 在单机环境中部署Portainer /177

10.2.2 【实战】使用Portainer管理Docker的镜像与容器 /179

10.2.3 【实战】使用Portainer管理远端主机上的Docker /180

10.2.4 在Docker Swarm集群中部署Portainer /182

10.3 开源的Docker图形工具――Shipyard

10.3.1 Shipyard的组件 /184

10.3.2 部署Shipyard /184

10.3.3 【实战】使用Shipyard创建容器 /187

第11章 Docker应用实战

11.1 Docker与数据库

11.1.1 在Docker容器中部署MySQL /188

11.1.2 数据库不适合Docker容器化的原因 /189

11.2 【实战】Docker与Python

11.3 【实战】Docker与PHP /192

下篇 Kubernetes从原理到实战


第12章 Kubernetes体系架构

12.1 什么是Kubernetes

12.2 Kubernetes集群

12.2.1 集群的架构体系 /198

12.2.2 Kubernetes的核心组件 /198

12.2.3 Kubernetes的常用附加组件 /199

12.3 Kubernetes的对象

12.3.1 对象的管理 /200

12.3.2 对象与命名空间 /201

12.3.3 对象的标签 /202

第13章 部署Kubernetes集群

13.1 Kubernetes的部署方式

13.1.1 使用kubeadmin部署Kubernetes集群 /204

13.1.2 使用YUM方式部署Kubernetes集群 /208

13.1.3 使用二进制包部署Kubernetes集群 /212

13.1.4 使用minikube工具部署Kubernetes单机版集群 /231

13.1.5 Kubernetes集群的高可用 /236

13.2 Kubernetes的客户端工具

13.2.1 Kubernetes图形管理工具――DashBoard UI /237

13.2.2 Kubernetes命令行管理工具――kubectl /240

13.3 【实战】使用Kubectl在Kubernetes中部署第一个应用

第14章 Kubernetes中的最小可部署对象Pod

14.1 什么是Pod

14.2 【实战】Pod的基本使用方法

14.3 Pod中的容器

14.3.1 基础容器 /251

14.3.2 初始化容器 /252

14.3.3 临时容器 /253

14.3.4 业务容器 /254

14.4 Pod的生命周期

14.4.1 Pod的阶段与容器的状态 /255

14.4.2 Pod中容器的重启策略 /256

14.4.3 【实战】Pod的健康检查 /257

14.5 Pod的调度策略

14.5.1 Pod的创建过程 /262

14.5.2 【实战】自定义Pod调度的约束策略 /262

14.6 Pod资源的使用限制

14.7 Pod的镜像拉取策略

14.8 Pod的配置管理

14.8.1 为什么需要配置管理 /268

14.8.2 【实战】使用ConfigMap管理Pod的配置信息 /268

14.8.3 【实战】使用Secret管理Pod的配置信息 /275

第15章 使用控制器管理Pod

15.1 为什么需要控制器

15.2 Deployment控制器

15.2.1 【实战】创建和使用Deployment控制器 /282

15.2.2 【实战】验证Deployment控制器的不同状态 /286

15.2.3 【实战】Deployment控制器的清理策略 /289

15.2.4 应用的部署 /292

15.2.5 编写Deployment控制器的规则 /304

15.3 DaemonSet控制器

15.3.1 DaemonSet控制器的创建 /305

15.3.2 DaemonSet控制器的调度 /307

15.4 Job控制器

15.4.1 【实战】单工作队列的Job串行方式 /307

15.4.2 【实战】多工作队列的Job并行方式 /308

15.4.3 Job的终止与清理 /310

15.5 CronJob控制器

15.5.1 【实战】运行第一个CronJob控制器 /313

15.5.2 CronJob控制器中的时间表示 /314

15.5.3 CronJob控制器的限制 /315

15.6 StatefulSets控制器

15.6.1 【实战】创建StatefulSets控制器 /316

15.6.2 StatefulSets控制器的扩容/缩容 /317

15.6.3 StatefulSets控制器的更新/回滚 /318

第16章 通过Service访问Pod

16.1 Service的概念与使用

16.1.1 【实战】通过Service向外部暴露Pod /321

16.1.2 Service的多端口设置 /323

16.1.3 集群内部的DNS服务 /324

16.1.4 【实战】无头Service /325

16.2 Service的发布类型

16.2.1 NodePort /328

16.2.2 ClusterIP /329

16.2.3 LoadBalance /331

16.2.4 ExternalName /332

16.3 虚拟IP与Service的代理模式

16.3.1 userspace代理模式 /333

16.3.2 iptables代理模式 /334

16.3.3 IPVS代理模式 /336

16.4 集群外部的请求访问集群内应用的最佳方式――Ingress

16.4.1 Ingress是什么 /339

16.4.2 【实战】使用Ingress Controller创建Ingress /340

16.4.3 【实战】使用Ingress的注解 /344

16.4.4 基于Ingress的高可用架构 /348

第17章 持久化存储

17.1 Kubernetes持久化存储方式

17.1.1 【实战】使用节点数据卷 /350

17.1.2 【实战】使用网络数据卷 /351

17.1.3 【实战】使用临时数据卷 /353

17.2 持久卷

17.2.1 持久卷是什么 /355

17.2.2 【实战】第一个持久卷示例 /355

17.2.3 持久卷的访问模式 /357

17.2.4 【实战】持久卷的回收策略 /359

17.3 持久卷声明

17.3.1 持久卷和持久卷声明的区别 /361

17.3.2 【实战】在Pod中使用持久卷声明 /362

17.3.3 storageClass详解 /364

17.4 【实战】实现持久卷的动态供给

第18章 Kubernetes的安全认证

18.1 Kubernetes的安全框架

18.2 Kubernetes的用户认证

18.3 Kubernetes的鉴权管理

18.3.1 基于角色的访问控制(RBAC鉴权) /379

18.3.2 基于属性的访问控制(ABAC鉴权) /384

18.3.3 基于节点的访问控制(node鉴权) /386

18.3.4 基于Webhook的访问控制 /387

18.4 管理服务账号(Service Account)

18.4.1 服务账号与用户账号 /391

18.4.2 【实战】创建和使用服务账号 /391

18.4.3 服务账号的工作机制 /396

第19章 Kubernetes中的日志收集与监控

19.1 收集哪些日志

19.2 日志收集方案

19.2.1 初识ELK /399

19.2.2 日志收集的架构 /399

19.2.3 日志收集方案详解 /400

19.3 实现Kubernetes集群的日志收集

19.3.1 安装ELK /402

19.3.2 【实战】采集Kubernetes系统组件的日志 /405

19.3.3 【实战】采集Nginx 应用的日志 /410

19.3.4 【实战】采集Tomcat应用的日志 /414

19.4 监控Kubernetes

19.4.1 Kubernetes监控方案 /418

19.4.2 【实战】部署Kubernetes监控系统 /419

第20章 Kubernetes集成与运维管理

20.1 Jenkins与Kubernetes的持续集成与持续部署

20.1.1 基于Kubernetes的Jenkins集群架构 /427

20.1.2 【实战】Jenkins与Kubernetes的集成 /428

20.2 使用Helm简化Kubernetes应用的部署和管理

20.2.1 什么是Helm /435

20.2.2 部署Helm /435

20.2.3 【实战】使用Helm管理Kubernetes /437

《赵渝强》《Docker+Kubernetes容器实战派》新书上市!!!的更多相关文章

  1. 关于《精通移动App测试实战:技术、工具和案例》图书勘误信息

    首先,对由于我们工作的疏忽向<精通移动App测试实战:技术.工具和案例>读者朋友们表示歉意,同时已将这些问题反馈给了出版社编辑同志,再版时将会统一修正: 其次,勘误信息请参看附件pdf文档 ...

  2. 《精通移动app测试实战:技术、工具和案例》新书上市

    本书是测试专家.性能测试专家.专业畅销书作者--于涌,多年实战经验的总结,涵盖主流的测试工具,包括众多的测试实例,涵盖单元测试.功能测试.性能测试.UI测试.手游测试.自动化测试.测试用例管理.持续集 ...

  3. 《精通移动app测试实战:技术、工具和案例》图书目录

    图书相关链接: 京东网:http://item.jd.com/11891239.html 当当网:http://product.dangdang.com/23924601.html 亚马逊:https ...

  4. 精通移动app测试实战

  5. 移动App测试实战—专项测试

       我们在进行了手工的功能测试之后,也开发了一些自动化测试用例,并且做了性能测试之后,测试工作看似比较完整了.但是当我们的App在大量的用户那里被安装和使用的时候,还是会有很多我们之前没有预料的问题 ...

  6. 移动测试(web和app)及app测试实战

    移动测试androidiosapp上 原生GUI 混合应用H5 web端兼容性浏览器测试需要的内容:safari 浏览器edge浏览器ie11浏览器firefox浏览器chrome浏览器 国内360浏 ...

  7. 《移动App测试实战》读书笔记

    第一章 概述 什么是移动产品? 移动产品是一个可以在移动设备上安装的App,或者一个可以在移动设备上访问的定制页面. 1.1 研发流程 互联网产品的研发过程主要涉及以下职位分工. 产品经理:负责产品方 ...

  8. APP测试实用小工具

    1.ADB万能驱动 http://pan.baidu.com/s/1jIJPwhS 2.安卓手机屏幕共享 http://pan.baidu.com/s/1nv6ma1b 3.IOS手机屏幕共享 htt ...

  9. APP测试常用工具以及框架

    APP测试常用工具以及框架 1)纯白盒方式的测试,Monkey.一般是开发用的比较多,动手能力强的同学可以自己去尝试下! 2)偏白盒的robotium,这家伙号称是黑盒,但是本人不太认同- 因为使用r ...

  10. App测试工具大全,收藏这篇就够了

    随着移动互联网的高速发展,App 应用非常火,测试工程师也会接触到各种 app 应用.除了人工测试之外,也可以通过一些测试工具来提高我们的测试效率,以下对于我用过或听过的 app 测试工具做了一个统一 ...

随机推荐

  1. scratch源码下载 | 超大太空游戏【80MB】

    按方向键或AWSD键控制角色移动,按空格键或X键攻击. 程序超级大,共80MB,耐心等待加载. 截图: 点击下载源码 更多源码访问:小虎鲸scratch资源站

  2. 【Windows】关闭 Ctrl+Alt+Delete 锁屏

    参考百度经验: https://jingyan.baidu.com/article/9158e0005787c3a2541228b3.html Win + R 运行 gpedit.msc

  3. 【JavaWeb】封装一个MVC框架

    框架参考自: https://www.bilibili.com/video/BV1gV411r7ct 在老师的基础上添加了 1.POST参数处理 2.Tomcat8版本下中文乱码处理 3.可声明请求方 ...

  4. 何时使用交叉熵,何时使用KL散度:计算分布差距为啥使用KL散度而不用交叉熵,计算预测差距时为啥使用交叉熵而不用KL散度

    问题: 何时使用交叉熵,何时使用KL散度? 计算分布差距为啥使用KL散度而不用交叉熵,计算预测差距时为啥使用交叉熵而不用KL散度 问题很大,答案却很简单. 答案: 熵是一种量度,是信息不确定性的量度: ...

  5. 强化学习中经典算法 —— reinforce算法 —— (进一步理解, 理论推导出的计算模型和实际应用中的计算模型的区别)

    在奖励折扣率为1的情况下,既没有折扣的情况下,reinforce算法理论上可以写为: 但是在有折扣的情况下,reinforce算法理论上可以写为: 以上均为理论模型. ================ ...

  6. 国内的开源AI模型共享网站(AI模型的GitHub)—— mindscope —— 使用git lfs方式下载模型文件

    参考前文: 国内的开源AI模型共享网站(AI模型的GitHub)-- mindscope -- 对标外网的"huggingface",mindscope好用吗? 使用git lfs ...

  7. H5页面\PC端实现QQ客服功能

    1.背景 很多应用都有在线客服,最简单是实现就是利用人们常用的QQ 2.实现 步骤一:授权QQ通讯组件(普通QQ都是可以的) 授权链接:https://shang.qq.com/v3/widget.h ...

  8. 支付宝支付java版实战(含视频讲解)

    1.背景 实际开发中用到支付宝支付的概念非常大...... 这里重点分析一下支付宝支付实际生产必须要实现的功能 1.获取支付链接(统一下单) 2.支付回调(异步通知) 3.统一下单交易查询 4.退款 ...

  9. 白鲸开源CEO郭炜荣获「2024中国数智化转型升级先锋人物」称号

    2024年7月24日,由数据猿主办,IDC协办,新华社中国经济信息社.上海大数据联盟.上海市数商协会.上海超级计算中心作为支持单位,举办"数智新质·力拓未来 2024企业数智化转型升级发展论 ...

  10. 优化系统性能:深入探讨Web层缓存与Redis应用的挑战与对策

    Web层缓存对于提高应用性能至关重要,它通过减少重复的数据处理和数据库查询来加快响应时间.例如,如果一个用户请求的数据已经缓存,服务器可以直接从缓存中返回结果,避免了每次请求都进行复杂的计算或数据库查 ...