新書推薦:

《
会速算的人,人生都不会太差
》
售價:HK$
52.8

《
我们的中国 揭秘立体翻翻书+地图 精装硬壳儿童3D立体书 小学生中国地理百科 少儿百科知识翻翻书启蒙读物
》
售價:HK$
162.6

《
黄帝内经·灵枢 中医书籍基础理论素问入门图解养生原文注解皇帝内经中医书籍
》
售價:HK$
64.9

《
儿童口腔早期矫治:基础、原则、策略
》
售價:HK$
437.8
![梯次增长:颠覆性创新时代的商业作战手册 [美]杰弗里·摩尔](//img.megbook.hk/upload/mall/productImages/25/27/9787111650843.jpg)
《
梯次增长:颠覆性创新时代的商业作战手册 [美]杰弗里·摩尔
》
售價:HK$
86.9

《
解码SWIFT
》
售價:HK$
60.5

《
明代中国的大航海--郑和下西洋论稿
》
售價:HK$
250.8

《
学会接纳孩子的不完美
》
售價:HK$
50.6
|
編輯推薦: |
在内容组织方面,本书采用项目式结构,每个项目通过学习目标明确教学任务。项目中每个任务分为任务说明、知识引入和任务实现三个部分,每个项目的最后是项目实训和项目总结。
在内容编写方面,本书重点突出、难点分散、循序渐进。本书在介绍Docker基本知识和使用的基础上,以Docker Engine为例,重点讲解Docker在应用程序开发和部署方面的实施,包括多容器应用程序定义、应用程序容器化、镜像自动化构建与持续集成,以及应用程序的Kubernetes集群部署。
本书的任务实现环节含有大量动手实践内容,实例涉及Java、Python、Node.js等语言。
|
內容簡介: |
本书从Docker运维工程师的视角系统地讲解Docker容器的配置、部署与应用,共分为8个项目,包括Docker安装、Docker快速入门、Docker网络与存储配置、Docker容器与守护进程运维、定义和运行多容器应用程序、应用程序容器化、自动化构建与持续集成、Kubernetes部署容器化应用程序。本书重点讲解Docker在应用程序开发和部署方面的实施。本书内容丰富,注重实践性和可操作性,项目中的每个任务都有相应的操作示范,并穿插大量实例,便于读者快速上手。
來源:香港大書城megBookStore,http://www.megbook.com.hk 本书可作为职业院校计算机相关专业课程的教材,也可作为软件开发人员、IT实施和运维工程师学习Docker容器技术的参考书,还可作为相关机构的培训教材。
|
關於作者: |
彭晓东,北京北大方正软件职业技术学院助理院长、分管人工智能学院,讲师(社评),教授(校评),北京市高等教育学会计算机教育研究分会副理事长。 毕业于北京科技大学计算机软件与理论专业,工学硕士。曾先后在北京新科电子公司、北京摩托罗拉公司、方正数字科技公司等企业从事软件开发和项目管理工作,项目实战经验丰富。 曾负责软件技术、大数据技术与应用、人工智能技术应用、网络安全等专业的建设工作。主持完成了北京北大方正软件职业技术学院信息化项目建设等一系列中高职院校信息化的项目。对数据处理与分析、人工智能技术应用与开发、信息安全和信息化教学等方面有深入研究。
|
目錄:
|
项目1 Docker安装 1
任务1.1 了解Docker 1
任务说明 1
知识引入 2
1.1.1 什么是Docker 2
1.1.2 Docker的优势 2
1.1.3 Docker架构 3
1.1.4 应用程序部署方式的演变 4
任务实现 5
任务1.1.1 了解Docker用例 5
任务1.1.2 调查国内的Docker应用现状 8
任务1.2 安装Docker 10
任务说明 10
知识引入 10
1.2.1 Docker Engine 10
1.2.2 Docker Desktop 11
任务实现 12
任务1.2.1 安装Docker Engine 12
任务1.2.2 安装Docker Engine之后的配置 16
任务1.3 Docker命令行的使用 17
任务说明 17
知识引入 17
1.3.1 Docker的命令行接口 17
1.3.2 docker命令列表 17
任务实现 19
任务1.3.1 熟悉docker命令的基本语法 19
任务1.3.2 运行一个容器 21
项目实训 22
项目实训1 安装Docker Engine 22
项目实训2 使用docker命令 22
项目总结 22
项目2 Docker快速入门 23
任务2.1 Docker镜像的使用 24
任务说明 24
知识引入 24
2.1.1 什么是镜像 24
2.1.2 镜像的基本信息 24
2.1.3 镜像描述文件Dockerfile 25
2.1.4 镜像操作命令 27
任务实现 27
任务2.1.1 掌握镜像的基本操作 27
任务2.1.2 验证镜像的分层结构 30
任务2.2 Docker容器的使用 31
任务说明 31
知识引入 31
2.2.1 什么是容器 31
2.2.2 容器的基本信息 32
2.2.3 容器的可写层 32
2.2.4 容器操作命令 33
2.2.5 容器的生命周期 34
任务实现 35
任务2.2.1 创建并同时启动容器 35
任务2.2.2 掌握容器的其他常用操作 37
任务2.3 Docker注册中心的使用 40
任务说明 40
知识引入 41
2.3.1 注册中心 41
2.3.2 仓库 41
任务实现 42
任务2.3.1 配置镜像加速器 42
任务2.3.2 使用阿里云容器镜像服务ACR 43
任务2.3.3 自建注册中心 47
任务2.4 构建镜像 49
任务说明 49
知识引入 50
2.4.1 基于容器生成镜像 50
2.4.2 Dockerfile格式 50
2.4.3 Dockerfile常用指令 51
2.4.4 区分RUN、CMD和ENTRYPOINT指令 56
2.4.5 镜像构建工具 58
任务实现 59
任务2.4.1 基于Dockerfile构建镜像 59
任务2.4.2 测试构建缓存 61
项目实训 62
项目实训1 Ubuntu镜像操作 62
项目实训2 Apache Web容器操作 62
项目实训3 使用自建注册中心 63
项目实训4 构建在Ubuntu系统上运行的nginx镜像 63
项目总结 63
项目3 Docker网络与存储配置 65
任务3.1 Docker网络配置与管理 65
任务说明 65
知识引入 66
3.1.1 Docker网络概述 66
3.1.2 容器的网络模式 67
3.1.3 容器之间的通信 70
3.1.4 容器与外部网络之间的通信 70
3.1.5 容器的网络配置语法 71
3.1.6 Docker网络管理语法 73
任务实现 73
任务3.1.1 将容器连接到默认桥接网络 73
任务3.1.2 创建用户自定义桥接网络并连接容器 76
任务3.1.3 设置端口映射以允许外部网络访问容器 81
任务3.2 Docker存储配置与管理 82
任务说明 82
知识引入 82
3.2.1 容器本地存储与Docker存储驱动 82
3.2.2 容器与数据存储持久化 83
3.2.3 挂载类型及其选择 84
3.2.4 Docker的卷管理命令 86
3.2.5 容器的文件系统挂载语法 86
任务实现 87
任务3.2.1 容器使用卷 87
任务3.2.2 容器使用绑定挂载 92
项目实训 95
项目实训1 创建和使用用户自定义桥接网络 95
项目实训2 使用卷 96
项目实训3 使用绑定挂载 96
项目实训4 测试容器填充卷 96
项目总结 96
项目4 Docker容器与守护进程运维 97
任务4.1 Docker容器配置进阶 97
任务说明 97
知识引入 98
4.1.1 容器的资源限制 98
4.1.2 容器的自动重启 101
4.1.3 在容器中运行多个服务 102
4.1.4 容器健康检查机制 102
4.1.5 运行时选项覆盖Dockerfile指令 103
任务实现 105
任务4.1.1 配置容器的自动重启策略 105
任务4.1.2 在容器中使用supervisord管理PHP和Nginx服务 107
任务4.1.3 测试容器健康检查功能 108
任务4.2 容器监控与日志管理 109
任务说明 109
知识引入 109
4.2.1 容器监控工具 109
4.2.2 容器日志工具 110
4.2.3 日志驱动 111
任务实现 112
任务4.2.1 熟悉Docker监控命令的使用 112
任务4.2.2 使用cAdvisor监控容器 113
任务4.2.3 将容器的日志记录到Linux日志系统 116
任务4.2.4 使用Logspout收集所有容器的日志 117
任务4.3 配置和管理Docker守护进程 119
任务说明 119
知识引入 119
4.3.1 Docker守护进程的启动 119
4.3.2 Docker守护进程的配置 120
4.3.3 Docker的实时恢复功能 122
任务实现 123
任务4.3.1 从Docker守护进程获取实时事件 123
任务4.3.2 查看Docker守护进程日志 123
任务4.3.3 测试Docker的实时恢复功能 124
任务4.3.4 开启Docker守护进程的远程访问 125
任务4.4 管理Docker对象 126
任务说明 126
知识引入 126
任务实现 126
任务4.4.1 使用Docker对象的标记 126
任务4.4.2 删除未使用的Docker对象 127
项目实训 127
项目实训1 容器的高级配置 127
项目实训2 实施容器监控 128
项目实训3 管理容器日志 128
项目实训4 配置和管理Docker守护进程 128
项目总结 128
项目5 定义和运行多容器应用程序 129
任务5.1 Compose入门 129
任务说明 129
知识引入 130
5.1.1 为什么要使用Compose 130
5.1.2 Compose的工作机制 130
5.1.3 Compose的特点 132
5.1.4 Compose的应用场景 133
5.1.5 Compose的版本演变 133
5.1.6 使用Compose的基本步骤 134
任务实现 134
使用Compose部署WordPress 134
任务5.2 编写Compose文件 138
任务说明 138
知识引入 138
5.2.1 Compose文件结构 138
5.2.2 服务定义 139
5.2.3 网络定义 144
5.2.4 卷定义 145
任务实现 146
任务5.2.1 编写定义单个服务的Compose文件 146
任务5.2.2 编写定义多个服务的Compose文件 147
任务5.3 使用Compose部署和管理应用程序 151
任务说明 151
知识引入 151
5.3.1 Compose命令行语法格式 151
5.3.2 Compose的常用命令 152
5.3.3 Compose的环境变量 154
5.3.4 组合使用多个Compose文件 155
任务实现 157
任务5.3.1 从源代码开始构建、部署和管理应用程序 157
任务5.3.2 更改Compose应用程序以适应不同环境 161
项目实训 163
项目实训1 使用Compose部署Web负载均衡应用程序 163
项目实训2 从源代码开始构建、部署和管理应用程序 164
项目总结 164
项目6 应用程序容器化 165
任务6.1 构建应用程序镜像 165
任务说明 165
知识引入 166
6.1.1 编写Dockerfile应遵循的准则和建议 166
6.1.2 创建自己的基础镜像 168
6.1.3 确定应用程序镜像包含的内容 168
6.1.4 应用程序镜像的构建和管理 169
任务实现 169
任务6.1.1 基于scratch构建简单的镜像 169
任务6.1.2 制作基于VNC的Firefox镜像 171
任务6.1.3 多阶段构建镜像 172
任务6.2 对应用程序进行容器化 173
任务说明 173
知识引入 174
6.2.1 应用程序容器化的基本步骤 174
6.2.2 部署容器化应用程序的方式 174
6.2.3 容器化过程中的应用程序代码处理 174
6.2.4 容器化应用程序的镜像大小优化 175
6.2.5 容器化应用程序的数据持久化 175
任务实现 176
容器化Node.js应用程序 176
任务6.3 Java应用程序容器化 179
任务说明 179
知识引入 179
6.3.1 Java的特点 179
6.3.2 Java的Web应用程序开发技术 180
6.3.3 Java应用程序服务器 180
6.3.4 Maven工具与Docker Maven插件 181
6.3.5 Spring Boot应用程序 181
任务实现 182
任务6.3.1 容器化简单的Java应用程序 182
任务6.3.2 容器化Tomcat应用程序 184
任务6.3.3 容器化Spring Boot应用程序 186
任务6.4 Python应用程序容器化 190
任务说明 190
知识引入 190
6.4.1 Python应用程序 190
6.4.2 Python Web框架及其部署技术 191
6.4.3 Python官方镜像的基本使用 192
任务实现 193
任务6.4.1 容器化Flask应用程序 193
任务6.4.2 容器化Django应用程序 197
项目实训 202
项目实训1 容器化Spring Boot应用程序 202
项目实训2 使用Compose部署LAMP平台 202
项目实训3 使用Compose部署Django应用程序 203
项目总结 203
项目7 自动化构建与持续集成 204
任务7.1 实现Docker镜像的自动化构建 204
任务说明 204
知识引入 205
7.1.1 代码管理与代码分支 205
7.1.2 CI/CD的概念 205
7.1.3 镜像的自动化构建 206
7.1.4 GitLab与GitLab Runner 207
任务实现 209
任务7.1.1 部署GitLab服务器 209
任务7.1.2 基于GitLab实现镜像的自动化构建 213
任务7.2 基于Docker实现CI/CD 219
任务说明 219
知识引入 219
7.2.1 Docker与CI/CD的结合 219
7.2.2 CI/CD实施工具 220
7.2.3 CI/CD平台的组建方案 221
7.2.4 Jenkins的项目类型 222
7.2.5 Jenkins的流水线代码语法 222
任务实现 223
任务7.2.1 部署Jenkins服务器 223
任务7.2.2 使用Jenkins的流水线项目实施CI/CD 227
任务7.2.3 通过配置GitLab自动触发项目自动化构建和部署 233
项目实训 236
项目实训1 搭建GitLab平台实现镜像自动化构建 236
项目实训2 结合Docker和Jenkins实现CI/CD 237
项目总结 237
项目8 Kubernetes部署容器化应用程序 238
任务8.1 部署Kubernetes集群 238
任务说明 238
知识引入 239
8.1.1 容器编排解决方案 239
8.1.2 Kubernetes集群的组成 240
8.1.3 Kubernetes集群的部署工具 241
8.1.4 Kubernetes的对象和资源 242
8.1.5 使用YAML文件描述应用程序 243
8.1.6 Kubernetes对象管理方法 244
任务实现 244
任务8.1.1 基于kind部署Kubernetes集群 244
任务8.1.2 在Kubernetes集群中运行并发布应用程序 248
任务8.2 在Kubernetes集群中部署开发的应用程序 250
任务说明 250
知识引入 251
8.2.1 将开发的应用程序部署到Kubernetes集群的基本流程 251
8.2.2 Jenkins的Maven项目CI/CD流程 251
任务实现 252
任务8.2.1 在Kubernetes集群中手动部署开发的应用程序 252
任务8.2.2 基于CI/CD平台将应用程序自动部署到Kubernetes集群 256
项目实训 261
项目实训1 手动将Python应用程序部署到Kubernetes 261
项目实训2 自动触发Maven项目构建并部署到Kubernetes 261
项目总结 262
|
|