互联网
类型
可以朗读
语音朗读
421千字
字数
2021-04-01
发行日期
展开全部
主编推荐语
Docker技术入门与实践指南教程,入门Docker容器技术。
内容简介
本书针对容器技术与应用的实际需求,讲解主流容器平台Docker的应用和运维的技术方法,内容包括Docker基础与安装、镜像管理、容器管理、Docker网络配置、Docker存储管理、Docker应用程序开发、镜像自动化构建、持续集成和自动化部署、多容器编排、多主机管理和Docker容器集群平台,以及生产环境中的Docker运维。
目录
- 版权信息
- 内容提要
- 前言
- 第1章 Docker基础
- 1.1 Docker的概念
- 1.1.1 什么是Docker
- 1.1.2 镜像与容器
- 1.1.3 容器与虚拟机
- 1.1.4 Docker引擎
- 1.1.5 Docker生态系统
- 1.2 Docker的应用
- 1.2.1 实现应用程序快速、一致的交付
- 1.2.2 响应式部署和应用程序
- 1.2.3 运行更多的工作负载
- 1.2.4 部署微服务应用
- 1.3 Docker架构
- 1.3.1 Docker客户端
- 1.3.2 Docker守护进程
- 1.3.3 Docker注册中心
- 1.3.4 Docker对象
- 1.4 Docker底层技术
- 1.4.1 名称空间
- 1.4.2 控制组
- 1.4.3 联合文件系统
- 1.4.4 容器格式
- 1.5 安装Docker
- 1.5.1 Docker的版本
- 1.5.2 Docker所支持的平台
- 1.5.3 安装Docker的准备工作
- 1.5.4 使用软件仓库安装Docker CE
- 1.5.5 通过便捷脚本安装Docker CE
- 1.5.6 卸载Docker
- 1.5.7 安装Docker之后的配置
- 1.6 docker命令行的使用
- 1.6.1 docker命令行接口类型
- 1.6.2 docker命令列表
- 1.6.3 docker命令的基本用法
- 1.6.4 docker命令示例
- 1.7 Docker API
- 1.7.1 Docker API类型
- 1.7.2 使用Docker API
- 1.8 Docker配置文件格式
- 1.8.1 JSON格式
- 1.8.2 YAML格式
- 1.9 习题
- 第2章 Docker镜像
- 2.1 Docker镜像基础
- 2.1.1 进一步理解镜像的概念
- 2.1.2 镜像的基本信息与标识
- 2.1.3 镜像描述文件Dockerfile
- 2.1.4 父镜像与基础镜像
- 2.1.5 镜像的分层结构
- 2.1.6 镜像操作命令
- 2.2 Docker镜像的基本操作
- 2.2.1 拉取镜像
- 2.2.2 显示镜像列表
- 2.2.3 设置镜像标签
- 2.2.4 查看镜像详细信息
- 2.2.5 查看镜像的构建历史以验证镜像分层
- 2.2.6 查找镜像
- 2.2.7 删除本地镜像
- 2.2.8 Docker镜像的导入和导出
- 2.3 Docker注册中心
- 2.3.1 Docker注册中心与仓库
- 2.3.2 Docker Hub
- 2.3.3 阿里云的容器镜像服务
- 2.3.4 私有Docker注册中心
- 2.4 习题
- 第3章 Docker容器
- 3.1 Docker容器基础
- 3.1.1 进一步理解容器的概念
- 3.1.2 容器的基本信息与标识
- 3.1.3 可写的容器层
- 3.1.4 磁盘上的容器大小
- 3.1.5 “写时拷贝”策略
- 3.1.6 容器操作命令
- 3.2 Docker容器的基本操作
- 3.2.1 创建和运行容器
- 3.2.2 启动和停止容器
- 3.2.3 查看容器信息
- 3.2.4 进入容器执行操作
- 3.2.5 删除容器
- 3.2.6 导出与导入容器
- 3.2.7 基于容器创建镜像
- 3.3 限制容器运行的资源
- 3.3.1 限制容器的内存使用
- 3.3.2 限制容器的CPU使用
- 3.3.3 块IO带宽限制
- 3.3.4 资源限制的实现机制——控制组
- 3.3.5 动态更改容器的配置
- 3.4 容器监控
- 3.4.1 Docker容器监控命令
- 3.4.2 使用cAdvisor监控容器
- 3.5 容器的日志管理
- 3.5.1 使用docker logs命令查看容器日志
- 3.5.2 配置日志驱动重定向容器的日志记录
- 3.6 习题
- 第4章 Docker网络
- 4.1 Docker网络基础
- 4.1.1 Docker容器网络模型
- 4.1.2 Linux网络基础
- 4.1.3 单主机与多主机的Docker网络
- 4.1.4 docker run命令的网络配置用法
- 4.1.5 docker network命令的网络配置用法
- 4.2 配置容器的网络连接
- 4.2.1 使用默认桥接网络
- 4.2.2 使用主机网络
- 4.2.3 使用none网络模式
- 4.2.4 使用container网络模式
- 4.2.5 用户自定义桥接网络
- 4.3 容器与外部的网络通信
- 4.3.1 容器访问外部网络
- 4.3.2 从外部网络访问容器
- 4.4 容器之间的网络通信
- 4.4.1 容器之间的网络通信的解决方案
- 4.4.2 以传统方式建立容器连接
- 4.5 习题
- 第5章 Docker存储
- 5.1 Docker存储驱动及其选择
- 5.1.1 概述
- 5.1.2 Docker版本所支持的存储驱动
- 5.1.3 Docker存储驱动所支持的底层文件系统
- 5.1.4 选择存储驱动需考虑的其他事项
- 5.1.5 检查当前的存储驱动
- 5.2 使用overlay2存储驱动
- 5.2.1 使用overlay2存储驱动的要求
- 5.2.2 配置Docker使用overlay2存储驱动
- 5.2.3 overlay2存储驱动的工作机制
- 5.2.4 容器使用overlay2存储驱动的读写机制
- 5.2.5 OverlayFS与Docker性能
- 5.3 迁移Docker根目录
- 5.4 Docker存储的挂载类型
- 5.4.1 Docker卷与存储驱动
- 5.4.2 选择合适的挂载类型
- 5.4.3 docker run命令的存储配置基本用法
- 5.5 使用Docker卷
- 5.5.1 卷的优势
- 5.5.2 选择-v或--mount选项
- 5.5.3 创建和管理卷
- 5.5.4 启动带有卷的容器
- 5.5.5 使用容器填充卷
- 5.5.6 使用只读卷
- 5.5.7 删除卷
- 5.6 使用绑定挂载
- 5.6.1 绑定挂载的功能限制
- 5.6.2 选择-v或--mount选项
- 5.6.3 容器使用绑定挂载
- 5.6.4 使用只读的绑定挂载
- 5.6.5 配置SELinux标签
- 5.7 使用tmpfs挂载
- 5.7.1 tmpfs挂载的特点
- 5.7.2 选择--tmpfs或--mount选项
- 5.7.3 在容器中使用tmpfs挂载
- 5.7.4 指定tmpfs参数
- 5.8 使用卷容器
- 5.8.1 通过卷容器实现容器之间的数据共享
- 5.8.2 通过卷容器来备份、恢复和迁移数据卷
- 5.9 容器的数据共享
- 5.9.1 容器与主机共享数据
- 5.9.2 容器之间共享数据
- 5.10 习题
- 第6章 开发基于Docker的应用程序
- 6.1 开发Docker镜像
- 6.1.1 进一步了解Dockerfile
- 6.1.2 通过Dockerfile构建镜像的基本方法
- 6.1.3 Dockerfile常用指令
- 6.1.4 Dockerfile示例
- 6.1.5 基于Dockerfile构建镜像
- 6.1.6 创建基础镜像
- 6.1.7 使用多阶段构建
- 6.1.8 编写Dockerfile的通用准则和建议
- 6.1.9 管理镜像
- 6.2 Docker的应用程序开发准则
- 6.2.1 尽可能缩减Docker镜像的大小
- 6.2.2 持久化应用程序数据
- 6.2.3 尽可能使用Swarm集群服务
- 6.2.4 测试和部署时使用持续集成和持续部署
- 6.2.5 了解开发环境和生产环境的区别
- 6.3 将应用程序Docker化
- 6.3.1 Docker化应用程序的基本流程
- 6.3.2 将Node.js应用程序Docker化
- 6.3.3 开发Node.js应用程序
- 6.3.4 创建应用程序的镜像
- 6.3.5 基于应用程序镜像运行容器
- 6.4 习题
- 第7章 自动化构建与持续集成
- 7.1 概述
- 7.1.1 镜像的自动化构建
- 7.1.2 持续集成
- 7.2 Docker Hub结合GitHub实现自动化构建
- 7.2.1 在GitHub上创建代码仓库
- 7.2.2 将Docker Hub连接到GitHub账户
- 7.2.3 在Docker Hub上创建镜像仓库
- 7.2.4 配置自动化构建选项和规则
- 7.2.5 创建自动化构建项目
- 7.2.6 基于代码仓库标签的自动化构建
- 7.2.7 通过构建触发器触发自动化构建
- 7.2.8 使用Webhook
- 7.3 通过阿里云镜像服务实现自动化构建
- 7.3.1 设置代码源
- 7.3.2 创建代码仓库
- 7.3.3 开始构建
- 7.4 基于Jenkins和Docker组建持续集成环境
- 7.4.1 准备工作
- 7.4.2 部署GitLab服务器
- 7.4.3 部署Docker注册服务器
- 7.4.4 部署并配置Jenkins服务器
- 7.4.5 新建Jenkins项目并进行构建
- 7.4.6 通过GitLab自动触发Jenkins构建项目
- 7.4.7 利用Jenkins的Docker插件来构建和推送镜像
- 7.5 实现应用程序的持续集成和自动化部署
- 7.5.1 准备工作
- 7.5.2 部署持续集成环境
- 7.5.3 准备源代码并将其提交到代码仓库
- 7.5.4 为Tale应用程序构建镜像并推送到Docker注册服务器
- 7.5.5 新建Maven项目进行构建并实现自动化部署
- 7.5.6 实现项目的自动化构建
- 7.6 习题
- 第8章 Docker容器编排
- 8.1 Docker容器编排基础
- 8.1.1 Docker Compose的架构
- 8.1.2 使用Docker Compose的基本步骤
- 8.1.3 Docker Compose的特性
- 8.1.4 Docker Compose的应用场合
- 8.1.5 Docker Compose安装
- 8.1.6 Docker Compose入门示例
- 8.2 Compose文件
- 8.2.1 Compose文件格式的不同版本
- 8.2.2 Compose文件结构
- 8.2.3 服务定义
- 8.2.4 卷存储定义
- 8.2.5 网络定义
- 8.3 Compose命令行
- 8.3.1 Compose命令行格式
- 8.3.2 Compose主要命令简介
- 8.4 Compose的环境变量
- 8.4.1 Compose使用环境变量的方式
- 8.4.2 不同位置定义的环境变量的优先级
- 8.5 在Compose中设置网络
- 8.5.1 默认网络的配置
- 8.5.2 更新容器
- 8.5.3 使用links选项
- 8.5.4 指定自定义网络
- 8.5.5 使用现有网络
- 8.6 容器编排示例
- 8.6.1 示例一:实现Web负载均衡
- 8.6.2 示例二:在Linux上部署ASP.NET与SQL Server
- 8.7 共享Compose通用配置
- 8.7.1 使用多个Compose文件
- 8.7.2 Compose文件追加和覆盖配置规则
- 8.8 在生产环境中使用Compose
- 8.8.1 针对生产环境修改Compose文件
- 8.8.2 部署应用程序更改
- 8.8.3 在单主机上运行Compose
- 8.9 习题
- 第9章 多主机部署与管理
- 9.1 通过Docker Machine部署和管理多主机
- 9.1.1 Docker Machine概述
- 9.1.2 Docker Machine安装
- 9.1.3 Docker Machine驱动
- 9.1.4 通过Docker Machine远程安装和部署Docker
- 9.1.5 通过Docker Machine管理Docker主机
- 9.2 跨主机容器网络
- 9.2.1 容器的跨主机通信方式
- 9.2.2 使用macvlan网络
- 9.2.3 使用overlay网络
- 9.3 跨主机监控
- 9.3.1 使用Weave Scope进行故障诊断与监控
- 9.3.2 Prometheus基础
- 9.3.3 部署Prometheus系统监控Docker主机和容器
- 9.4 习题
- 第10章 Docker Swarm集群
- 10.1 Docker Swarm基础
- 10.1.1 Docker Swarm模式
- 10.1.2 Docker Swarm主要概念
- 10.1.3 Swarm节点工作机制
- 10.1.4 Swarm服务工作机制
- 10.1.5 使用PKI管理Swarm安全性
- 10.1.6 Swarm任务状态
- 10.2 Docker Swarm基本操作
- 10.2.1 设置运行环境
- 10.2.2 创建Swarm集群
- 10.2.3 将节点加入Swarm集群
- 10.2.4 将服务部署到Swarm集群
- 10.2.5 增加和缩减服务
- 10.2.6 故障迁移与重新平衡
- 10.2.7 删除Swarm服务
- 10.2.8 对服务进行滚动更新
- 10.2.9 管理节点
- 10.2.10 发布服务端口
- 10.3 管理Swarm服务网络
- 10.3.1 配置overlay网络
- 10.3.2 创建和配置连接overlay网络的Swarm服务
- 10.3.3 服务发现与内部容器之间的通信
- 10.3.4 在overlay网络上使用独立容器
- 10.4 通过堆栈在Swarm集群中部署分布式应用
- 10.4.1 Docker堆栈概述
- 10.4.2 示例一:Swarm堆栈部署入门
- 10.4.3 示例二:Swarm集群多节点的堆栈部署
- 10.5 管理敏感数据
- 10.5.1 Docker机密数据的应用
- 10.5.2 Docker如何管理机密数据
- 10.5.3 Docker机密数据管理命令
- 10.5.4 示例一:Docker机密数据操作入门
- 10.5.5 示例二:配置Nginx服务使用机密数据
- 10.5.6 在Compose文件中使用Docker机密数据
- 10.5.7 将Docker机密数据置入镜像中
- 10.6 存储服务配置数据
- 10.6.1 Docker配置数据概述
- 10.6.2 示例一:Docker配置数据操作入门
- 10.6.3 示例二:配置Nginx服务使用配置数据
- 10.6.4 替换服务的配置数据
- 10.7 习题
- 第11章 生产环境中的Docker运维
- 11.1 配置和管理Docker守护进程
- 11.1.1 配置并运行Docker守护进程
- 11.1.2 排查Docker守护进程故障
- 11.1.3 使用systemd控制Docker
- 11.2 配置Docker对象
- 11.2.1 配置对象使用自定义元数据
- 11.2.2 删除不用的对象
- 11.2.3 格式化命令和日志的输出
- 11.3 Docker安全
- 11.3.1 Docker安全机制
- 11.3.2 保护Docker守护进程套接字
- 11.3.3 其他Docker安全措施
- 11.4 使用插件扩展Docker
- 11.4.1 Docker插件概述
- 11.4.2 Docker插件安装和使用示例
- 11.4.3 Docker插件开发示例
- 11.5 离线部署和使用Docker
- 11.5.1 离线安装Docker
- 11.5.2 在离线环境中导入镜像
- 11.5.3 离线建立私有Docker注册中心
- 11.6 习题
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。