新书速览|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容器运维实战》内容详尽、示例丰富,是广大Docker与Kubernetes入门读者的必备参考书,同时也非常适合作为高等院校或高职、高专计算机及相关专业的教材使用。

编辑推荐

本书分两部分系统介绍Docker与Kubernetes的运维技术。

Docker部分包括:全面认识Docker、初步体验Docker、Docker基本管理、Docker仓库、数据管理、Dockerfile、日志、Compose、Swarm、Portainer、Docker 实战应用。

Kubernetes部分包括:Kubernetes初步入门、安装Kubernetes、Kubernetes命令行工具、运行应用、通过服务访问应用、存储管理、软件包管理、网络管理、Kubernetes Dashboard、Kubernetes安全、Kubernetes集群管理。

作者简介

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

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

读者对象

  • Docker与Kubernetes初学者

  • 运维工程师

  • 前端开发人员

  • 后端开发人员

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

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

本书目录

第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容器运维实战》,获出版社和作者授权发布。

Docker与Kubernetes容器运维实战——京东

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/657678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32F407移植OpenHarmony笔记4

上一篇写到make menuconfig报错,继续开整。 make menuconfig需要/device/soc/*下面有对应的Kconfig文件。 直接去gitee下载stm32的配置文件拿来参考用。 先提取Kconfig文件,后面再添加其它文件。https://gitee.com/openharmony/device_soc_st/tree/Open…

arcgis 如何将线路转为路面

在出外业的时候,用手机软件测出来的路(线要素),需要转换成路面。具体操作如下: 1.打开线图层 2.菜单-地理处理-缓冲区 在缓冲区中,输入要转换的线要素,在线性单位下方填写要转换的面的宽度&am…

《Numpy 简易速速上手小册》第10章:Numpy案例研究和实践技巧(2024 最新版)

文章目录 10.1 实际案例分析10.1.1 基础知识10.1.2 完整案例:天气数据分析10.1.3 拓展案例 1:股票价格分析10.1.4 拓展案例 2:信号处理 10.2 Numpy 最佳实践10.2.1 基础知识10.2.2 完整案例:高效数组操作10.2.3 拓展案例 1&#x…

vue-cli初始化项目很慢?

第一种情况 大部分是由于npm的镜像源不是淘宝的 cmd输入npm config get registry查看是不是淘宝的,是的话看第二种情况试试不是的话输入npm config set registry https://registry.npm.taobao.org 第二种情况 vue-cli配置文件不是使用淘宝镜像源的 找到文件.vue…

已实现:vue、h5项目如何使用echarts实现雷达图、六边形图表

说实话,要说图表里,最强的应该属于echarts了,不管是接入难度上,还是样式多样性上,还有社区庞大程度上,都是首屈一指的,反观有的人习惯用chart.js了,这个无可厚非,但是如果…

微信小程序如何实现实时显示输入内容

如下所示&#xff0c;在许多场景中需要实时显示用户输入&#xff0c;具体实现见下文。 .wxml <input type"text" placeholder"请输入{{item.value}}(必填)" style"width:80%;" bindinput"get_required_value" data-info"{{it…

科技云报道:新趋势下,国产数据库或“春山可望”

科技云报道原创。 从540亿元到1286亿元——这是中国通信标准化协会大数据技术标准推进委员会针对中国数据库行业给出的一份预测报告。 报告指出&#xff0c;未来五年&#xff0c;中国数据库行业将从百亿级市场跨越成为千亿级市场。 最近两年&#xff0c;中国的数据库行业似乎…

Ubuntu 22.04 中文乱码解决方案

sudo apkg-reconfigure locales 按空格键选中

Jenkins自动化打包

Jenkins自动化打包 下载安装 我们直接从官网https://www.jenkins.io/download/ 下载所需的Jenkins文件 如上图所示, 选择Windows版本,下面就是一路安装即可,需要注意的是,选择作为系统服务选项, 不要自己设置账号密码登录. Web配置 安装完根据提示在浏览器打开 http://lo…

iZotope RX 10.4.2 mac激活版 音频修复和增强工具

iZotope RX 10 for Mac是一款专业的音频修复软件&#xff0c;旨在提供强大、精确的工具&#xff0c;让用户能够清晰、纯净地处理音频。以下是其主要功能和特点&#xff1a; 软件下载&#xff1a;iZotope RX 10.4.2 mac激活版下载 强大的降噪功能&#xff1a;iZotope RX 10采用了…

动态住宅IP可以用来注册亚马逊电商吗?

注册亚马逊店铺可以用动态IP&#xff0c;只要是独立且干净的网线就没问题&#xff0c;亚马逊规则要求一个IP地址只能出现一个亚马逊店铺&#xff0c;若使用不当会导致关联账户。所以现在非常多人使用指纹浏览器搭配代理IP 固定ip可以给我们的账户带来更多的安全&#xff0c;要知…

输电线路导线舞动在线监测装置:“舞动”不再!守护电网安全!

输电线路导线舞动会影响输电线路的运行安全&#xff0c;其影响因素主要包括以下几个方面&#xff1a; 1、风力影响&#xff1a;风力是导致输电线路导线舞动的主要原因之一。在风的激励下&#xff0c;会对导线施加较大的侧向压力&#xff0c;导线会随风摆动&#xff0c;发生扭转…

iOS17使用safari调试wkwebview

isInspectable配置 之前开发wkwebview的页面的时候一直使用safari调试&#xff0c;毕竟jssdk交互还是要用这个比较方便&#xff0c;虽说用一个脚本插件没问题。不过还是不太方便。 但是这个功能突然到了iOS17之后发现不能用了&#xff0c;还以为又是苹果搞得bug&#xff0c;每…

Skywalking trace UI页面中字段信息详解,包括端点、跨度类型和Peer

刚上手Skywalking的同学可能对 trace UI 页面信息中的字段信息不是很了解&#xff0c;在这里就给大家一一讲解&#xff0c;重点关注端点、跨度类型和Peer 服务 :服务的名称 实例&#xff1a;服务对应的实例 端点&#xff1a;端点(Endpoint) 对于特定服务所接收的请求路径, 如…

Word莫名其妙开启兼容模式将其永久取消的方法

这是因为Word模板文件被意外更改了 找到Word模板文件&#xff0c;目录在C:\Users\15976\AppData\Roaming\Microsoft\Templates 15976替换成你自己的用户名&#xff0c;不确定的就先点进C/Users看一看&#xff0c; AppData是隐藏文件夹&#xff0c;显示隐藏文件夹才能看见&am…

点餐APP开发需要用到的一些源代码

在数字化日益普及的今天&#xff0c;点餐APP已经成为人们日常生活的重要组成部分&#xff0c;从校园食堂到高级餐厅&#xff0c;从快餐外卖到定制化营养餐&#xff0c;点餐APP的多样性和便利性满足了不同用户的需求&#xff0c;本文将深入探讨在开发一款点餐APP时可能用到的源代…

Vim实战:使用 Vim实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度&#xff0c;DP多卡&#xff0c;EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

企业级大模型的护城河:RAG + 微调

围绕LLM的炒作是前所未有的&#xff0c;但这是有道理的&#xff0c;生成式 AI 有潜力改变我们所知道的社会。 在很多方面&#xff0c;LLM将使数据工程师变得更有价值——这令人兴奋&#xff01; 不过&#xff0c;向老板展示数据发现工具或文本到 SQL 生成器的炫酷演示是一回事…

CTF-WEB的知识体系

CTF概念 CTF是Capture The Flag的缩写&#xff0c;中文一般译作夺旗赛 CTF起源于1996年DEFCON全球黑客大会 DEFCONCTF是全球技术水平和影响力最高的CTF竞赛 竞赛模式 解题模式:解决网络安全技术挑战(即找到flag)&#xff0c;提交后获取相应分值。 攻防赛模式:要求找到其他队…

故障诊断 | 一文解决,CNN卷积神经网络故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍源码设计参考资料效果一览 文章概述 故障诊断 | 一文解决,CNN卷积神经网络故障诊断(Matlab) 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅