【图书推荐】《Docker与Kubernetes容器运维实战》

本书目的

帮助读者用最短的时间掌握Docker与K8s运维技能。

内容简介

随着云计算和容器技术的发展,Docker与Kubernetes已经成为各个企业最-佳的部署工具,使用它们可以提高系统的部署效率和运维能力,降低运维成本。本书是一本为初学者量身定制的Docker与Kubernetes容器技术入门书,要求读者具有Linux基础。

《Docker与Kubernetes容器运维实战》共22章,第1~11章主要内容包括全面认识Docker、初步体验Docker、Docker基本管理、Docker的仓库、Docker数据管理、Dockerfile、Docker日志、Docker Compose、Docker Swarm、Docker Portainer、Docker 实战应用;第12~22章主要内容包括Kubernetes初步入门、安装Kubernetes、Kubernetes命令行工具、运行应用、通过服务访问应用、存储管理、Kubernetes软件包管理、Kubernetes网络管理、Kubernetes Dashboard、Kubernetes安全、Kubernetes集群管理。

适合的读者

本书内容详尽、示例丰富,是广大Docker与Kubernetes入门读者的必备参考书,同时也非常适合作为高等院校或高职、高专计算机及相关专业的教材使用。

作者简介

王启明,平顶山学院副教授,郑州大学计算机科学与技术学士,西安电子科技大学计算机技术硕士。本人主要从事人工智能、智能物联网、计算机视觉等方面的研究。著有《Python 3.7网络爬虫快速入门》《Python 3.6零基础入门与实战》。

肖志健,南京理工大学计算机科学与技术学士。2011年开始专注于Linux,从事过一线研发工程师、大学讲师、创业公司产品与技术总监等工作。目前专注于Linux研发和团队管理。著有《Red Hat Enterprise Linux 9系统管理实战》。

前言

你是否还在一台一台地安装服务器部署环境

项目要求快速上线并且部署多台服务器环境时,需要一台一台服务器执行yum install、vim、restart等命令。这时如果有一个U盘,能把整个环境直接复制到每一台服务器上,那该多好啊。Docker就是那个U盘。

云平台都在使用容器,并且提供完整的容器运维平台环境。

国内外知名的云服务商都提供了容器以及容器运维平台,基本上可以做到少量配置、一键上线的效果。

拥有多个容器,并且这些容器可能跨越多个服务器主机,如何管理它们?

Kubernetes为那些需要大规模部署容器的工作负载提供了编排与管理能力。Kubernetes编排让用户能够构建多容器的应用服务,在集群上调度或伸缩这些容器,以及管理它们随时间变化的健康状态。

本书是否适合你

本书帮你进入云服务时代,掌握Docker和Kubernetes相关知识。第1~11章介绍Docker,读者可以从这几章内容中快速地掌握Docker相关知识。第12~22章介绍Kubernetes,尽管Kubernetes的知识点非常多,但是作为一本入门书,本书精心组织相关知识点,提纲挈领地介绍Kubernetes中必须掌握的重要知识点。

本书特点

(1)讲解细致,分析透彻。不论是理论知识的介绍,还是实例的开发,本书都是从实际应用角度出发,精心选择开发中的典型例子,使读者快速掌握。

(2)深入浅出,轻松易学。以实例为主线,激发读者的阅读兴趣,让读者能够真正学习到Docker和Kubernetes最实用、最前沿的技术。

(3)技术新颖,与时俱进。结合时下热门的技术,了解并熟识更多相关领域的先进技术。

(4)贴近读者,贴近实际。大量成熟案例的使用和说明,帮助读者快速找到问题的最优解决方案,书中很多实例来自作者工作的实际环境。

(5)贴心提醒,提示要点。本书根据需要在各章使用了“注意”“说明”等小提示,让读者可以在学习过程中更轻松地理解相关知识点及概念。

示例源码和课件下载

本书配套的示例源码和课件需要用微信扫描下边二维码获取。如果读者在阅读过程中发现问题,请用电子邮件联系booksaga@163.com,邮件主题务必写“Docker与Kubernetes容器运维实战”。

本书读者

?Docker与Kubernetes初学者

?运维工程师

?前端开发人员

?后端开发人员

?快速部署研发、测试、生产环境的IT人员

?对容器和容器管理有兴趣的高校学生

作   者

2023年5月

目录

目    录
第1章  全面认识Docker 1
1.1  容器技术 1
1.1.1  什么是容器 2
1.1.2  容器与虚拟机之间的区别 3
1.1.3  容器究竟解决了什么问题 4
1.1.4  容器的优点 5
1.1.5  容器的缺点 5
1.1.6  容器的分类 6
1.2  Docker技术 7
1.2.1  什么是Docker 7
1.2.2  Docker的由来 8
1.2.3  Docker究竟是什么 8
1.3  Docker的架构与组成 9
1.3.1  Docker的架构 9
1.3.2  Docker中应用系统的存在
形式 11
1.4  为什么使用Docker 11
1.4.1  Docker的应用场景 11
1.4.2  Docker可以解决哪些问题 12
1.4.3  Docker的应用成本 12
1.5  Docker和Podman 12
1.5.1  Podman 13
1.5.2  Docker和Podman的比较 13
第2章  初步体验Docker 15
2.1  在Windows中安装Docker 15
2.1.1  通过Boot2Docker
体验Docker 15
2.1.2  通过Docker Desktop
体验Docker 21
2.1.3  搭建第一个Docker应用:
Hello world 28
2.2  在Ubuntu中安装Docker 30
2.2.1  通过Ubuntu仓库
安装Docker 30
2.2.2  通过Docker仓库
安装Docker 32
2.2.3  通过软件包安装Docker 33
2.2.4  测试安装的结果 33
第3章  Docker基本管理 35
3.1  镜像管理 35
3.1.1  查找镜像 35
3.1.2  下载镜像 36
3.1.3  列出本地镜像 37
3.1.4  删除镜像 37
3.1.5  查看镜像 37
3.1.6  构建镜像 40
3.1.7  镜像标签管理 42
3.2  容器管理 43
3.2.1  创建容器 43
3.2.2  查看容器 45
3.2.3  启动容器 46
3.2.4  停止容器 46
3.2.5  删除容器 47
3.3  网络管理 47
3.3.1  Docker网络原理 47
3.3.2  网络模式 49
3.3.3  Docker容器的互联 50
3.3.4  容器与外部网络的互联 52
第4章  Docker的仓库 54
4.1  公共镜像市场 54
4.1.1  什么是Docker Hub 54
4.1.2  Docker Hub的特点 54
4.1.3  使用Docker Hub 55
4.2  第三方镜像市场 57
4.2.1  公有镜像中心(加速器) 57
4.2.2  私有镜像中心 58
4.3  私有仓库 59
4.3.1  创建私有仓库 59
4.3.2  使用私有仓库 60
第5章  Docker数据管理 63
5.1  数据卷 63
5.1.1  什么是数据卷 63
5.1.2  创建数据卷 64
5.1.3  不同类型的数据卷 64
5.2  数据卷容器 67
5.2.1  新建数据卷容器 67
5.2.2  共享数据卷容器 67
5.3  数据迁移 67
5.3.1  备份 68
5.3.2  恢复 68
第6章  Dockerfile 69
6.1  文件结构说明 69
6.1.1  Dockfile的简单格式 69
6.1.2  提示解释器 70
6.1.3  环境变量替换 71
6.2  指令简介 71
6.2.1  FROM 72
6.2.2  ARG 72
6.2.3  RUN 73
6.2.4  CMD 77
6.2.5  LABEL 78
6.2.6  EXPOSE 79
6.2.7  ENV 79
6.2.8  ADD 80
6.2.9  COPY 81
6.2.10  ENTRYPOINT 81
6.2.11  VOLUME 86
6.2.12  USER 87
6.2.13  WORKDIR 87
6.2.14  ONBUILD 88
6.2.15  STOPSIGNAL 89
6.2.16  HEALTHCHECK 89
6.2.17  SHELL 90
6.3  创建镜像 92
6.3.1  命令详解 92
6.3.2  .dockerignore文件 92
6.3.3  最佳实践 93
第7章  Docker日志 98
7.1  docker logs 98
7.2  logging driver 99
7.3  ELK 100
7.3.1  概述 101
7.3.2  安装ELK 101
7.3.3  Filebeat配置 103
7.3.4  Kibana配置 105
第8章  Docker Compose 107
8.1  简介 107
8.1.1  主要功能 108
8.1.2  常见用例 108
8.2  安装Compose 109
8.2.1  Docker Desktop 109
8.2.2  安装Compose Plugin 109
8.2.3  独立安装Compose 110
8.3  使用Compose部署 110
8.3.1  先决条件 111
8.3.2  步骤1:定义应用程序
依赖项 111
8.3.3  步骤2:创建Dockerfile 112
8.3.4  步骤3:在撰写文件中定义
服务 112
8.3.5  步骤4:使用Compose生成并
运行应用 113
8.3.6  步骤5:编辑Compose文件以
添加Volume 114
8.3.7  步骤6:使用Compose重新
生成并运行应用 114
8.3.8  步骤7:更新应用程序 115
8.3.9  步骤8:尝试使用其他命令 115
8.4  使用Compose命令 116
第9章  Docker Swarm 118
9.1  基本概念 118
9.1.1  简介 118
9.1.2  关键概念 120
9.2  使用Swarm 121
9.2.1  创建Swarm 121
9.2.2  添加Swarm节点 122
9.3  使用服务命令 123
9.3.1  部署一个服务 123
9.3.2  查看服务 124
9.3.3  扩展服务 124
9.3.4  删除服务 125
9.3.5  应用滚动更新 126
第10章  Docker Portainer 129
10.1  简介 129
10.2  安装 130
10.3  常规操作 132
10.3.1  App模板 132
10.3.2  镜像操作 133
10.3.3  容器操作 134
10.3.4  添加Docker镜像仓库 136
第11章  Docker实战应用 138
11.1  OS Docker 138
11.1.1  BusyBox 138
11.1.2  Alphine 139
11.1.3  Ubuntu 139
11.1.4  CentOS 139
11.2  Web服务应用 140
11.2.1  Apache 140
11.2.2  Nginx 140
11.3  数据库应用 141
11.3.1  MySQL 141
11.3.2  Redis 142
11.3.3  MongoDB 142
11.4  编程应用 143
11.4.1  Java 143
11.4.2  Python 143
第12章  Kubernetes初步入门 145
12.1  Kubernetes技术 145
12.1.1  什么是Kubernetes 145
12.1.2  Kubernetes的发展历史 145
12.1.3  为什么使用Kubernetes 146
12.2  Kubernetes的重要概念 147
12.2.1  Cluster(集群) 147
12.2.2  Master(控制节点) 147
12.2.3  Node(工作节点) 148
12.2.4  Pod 149
12.2.5  服务 149
12.2.6  卷 150
12.2.7  命名空间 150
第13章  安装Kubernetes 151
13.1  通过软件包管理工具安装
Kubernetes 151
13.1.1  软件包管理工具 151
13.1.2  节点规划 152
13.1.3  安装前准备 153
13.1.4  Etcd集群配置 153
13.1.5  Master节点的配置 158
13.1.6  Node节点的配置 160
13.1.7  配置网络 162
13.2  Kubeadm的使用方法 163
13.2.1  Kubeadm的安装方法 164
13.2.2  Kubeadm的基本语法 165
13.2.3  基础OS环境部署 165
13.2.4  部署Master节点 167
13.2.5  部署Node节点 167
13.2.6  部署CNI网络 168
13.2.7  重置节点 168
第14章  Kubernetes命令行工具 169
14.1  kubectl用法概述 169
14.2  kubectl的子命令 171
14.3  Kubernetes资源对象类型 173
14.4  kubectl的输出格式 173
14.5  kubectl命令举例 174
第15章  运行应用 178
15.1  Deployment 178
15.1.1  什么是Deployment 178
15.1.2  Deployment与ReplicaSet 179
15.1.3  运行Deployment 179
15.1.4  使用配置文件 185
15.1.5  扩容和缩容 189
15.1.6  故障转移 191
15.1.7  通过标签控制Pod的位置 193
15.1.8  删除Deployment 195
15.1.9  DaemonSet 195
15.2  Job 197
15.2.1  什么是Job 197
15.2.2  Job失败处理 199
15.2.3  Job的并行执行 200
15.2.4  Job的定时执行 201
第16章  通过服务访问应用 203
16.1  服务及其功能 203
16.1.1  服务的基本概念 203
16.1.2  服务的功能原理 204
16.2  管理服务 205
16.2.1  创建服务 205
16.2.2  查看服务 207
16.2.3  删除服务 208
16.3  外部网络访问服务 209
16.3.1  kube-proxy结合ClusterIP 209
16.3.2  通过NodePort访问服务 210
16.3.3  通过负载均衡访问服务 212
16.4  通过CoreDNS访问应用 212
16.4.1  CoreDNS简介 213
16.4.2  安装CoreDNS 213
第17章  存储管理 220
17.1  存储卷 220
17.1.1  什么是存储卷 220
17.1.2  emptyDir卷 221
17.1.3  hostPath卷 224
17.1.4  NFS卷 224
17.1.5  Secret卷 225
17.1.6  iSCSI卷 228
17.2  持久化存储卷 229
17.2.1  什么是持久化存储卷 229
17.2.2  持久化存储卷请求 229
17.2.3  持久化存储卷的生命周期 230
17.2.4  持久化存储卷静态绑定 231
17.2.5  持久化存储卷动态绑定 234
17.2.6  回收 238
第18章  Kubernetes软件包管理 241
18.1  Helm 241
18.1.1  Helm相关概念 241
18.1.2  Tiller 242
18.1.3  Chart 242
18.1.4  Repository 242
18.1.5  Release 243
18.2  安装Helm 243
18.2.1  安装客户端 243
18.2.2  安装服务器端Tiller 245
18.3  Chart文件结构 247
18.4  使用Helm 247
18.4.1  软件仓库的管理 248
18.4.2  查找Chart 248
18.4.3  安装Chart 250
18.4.4  查看已安装的Chart 252
18.4.5  删除Release 253
第19章  Kubernetes网络管理 254
19.1  Kubernetes网络基础 254
19.1.1  Kubernetes网络模型 254
19.1.2  命名空间 255
19.1.3  veth网络接口 255
19.1.4  netfilter/iptables 256
19.1.5  网桥 256
19.1.6  路由 256
19.2  Kubernetes网络实现 257
19.2.1  Docker与Kubernetes网络比较 257
19.2.2  容器之间的通信 261
19.2.3  Pod之间的通信 262
19.2.4  Pod和服务之间的通信 265
19.3  Flannel 272
19.3.1  Flannel简介 272
19.3.2  安装Flannel 273
第20章  Kubernetes Dashboard 278
20.1  Kubernetes Dashboard配置文件 278
20.1.1  Kubernetes角色控制 278
20.1.2  kubernetes-dashboard.yaml 279
20.2  安装Kubernetes Dashboard 284
20.2.1  官方安装方法 284
20.2.2  自定义安装方法 284
20.3  Dashboard的使用方法 287
20.3.1  Dashboard概况 287
20.3.2  通过Dashboard创建资源 289
第21章  Kubernetes安全 290
21.1  在集群级别应用Pod安全标准 290
21.1.1  正确选择要应用的Pod安全标准 290
21.1.2  设置模式、版本和标准 292
21.1.3  清理 295
21.2  在命名空间级别应用Pod 295
21.2.1  创建集群 295
21.2.2  为命名空间启用Pod安全标准检查 296
21.2.3  验证Pod安全标准 296
21.2.4  清理 297
21.3  使用AppArmor限制容器对资源的访问 297
21.3.1  环境准备 297
21.3.2  保护Pod 298
21.4  使用Seccomp限制容器对资源的访问 299
21.4.1  下载Seccomp配置文件示例 299
21.4.2  使用Kind创建本地Kubernetes集群 299
21.4.3  使用RuntimeDefault做负载均衡 300
21.4.4  创建使用容器运行时默认Seccomp配置文件的Pod 302
21.4.5  使用Seccomp配置文件创建
Pod以进行系统调用审计 302
第22章  Kubernetes集群管理 305
22.1  资源管理 305
22.1.1  组织资源配置 305
22.1.2  kubectl中的批量操作 306
22.1.3  有效地使用标签 308
22.1.4  多标签部署 309
22.1.5  更新标签 310
22.1.6  更新注解 310
22.1.7  扩展应用 310
22.1.8  就地更新资源 311
22.1.9  破坏性地更新 312
22.1.10  在不中断服务的情况下更新应用 312
22.2  日志架构 312
22.2.1  Pod和容器日志 313
22.2.2  集群日志架构 314
22.3  系统组件指标 320
22.3.1  Kubernetes中组件的指标 320
22.3.2  指标生命周期 321
22.3.3  显示隐藏指标 321
22.3.4  禁用加速器指标 322
22.3.5  组件指标 322
22.4  系统日志 323
22.4.1  KLog 323
22.4.2  KLog输出 324
写在最后 325

正版购买

《Docker与Kubernetes容器运维实战》(王启明,肖志健)【摘要 书评 试读】- 京东图书 (jd.com)

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
DockerKubernetes是目前非常热门的容器化技术,对于容器实战派来说,它们是必备的工具。 首先,Docker是一种开源的容器化平台,它可以将应用程序和其依赖项打包成一个独立的容器,使其可以在任何环境中快速、可靠和一致地运行。Docker具有轻量级、可移植性和隔离性的特点,使得开发人员可以更加灵活和高效地构建、发布和管理应用程序。在容器实战过程中,我们可以使用Docker来创建和管理多个容器,从而使应用程序更加模块化,便于维护和扩展。 其次,Kubernetes是一个用于自动化部署、扩展和管理容器化应用程序的开源平台。它提供了一个强大的容器编排系统,可以自动化管理和调度容器,并保证应用程序的高可用性和弹性。Kubernetes还具有自动化滚动更新、负载均衡、服务发现、容器存储管理等功能,使得我们能够更加方便地管理和运维大规模的容器集群。在容器实战过程中,我们可以使用Kubernetes来统一管理和调度Docker容器,从而实现应用的高效部署和运行。 对于容器实战派来说,使用DockerKubernetes可以带来许多好处。首先,它们能够提供一致的开发、测试和部署环境,减少由于环境配置不同而导致的问题。其次,它们能够提供快速的应用部署和扩展能力,使得开发人员能够更加灵活地迭代和发布应用程序。此外,它们还具有强大的监控和日志功能,帮助我们实时跟踪和解决问题。总的来说,DockerKubernetes容器实战派提供了一种更加高效、可靠和可扩展的容器化解决方案,帮助我们提升开发和运维效率,加速应用部署和交付。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值