《Docker开发实践》详细介绍高级容器引擎Docker的各方面技术,从概念介绍到实战,讨论docker的内容,包含基础概念如:镜像,容器,仓库;从实战中讲解docker的数据管理,网络管理,安全管理;最后,探讨docker的底层相关技术和基于docker的最新技术。
目录
- 第一篇 基础篇:Docker基础
- 第1章 Docker简介 2
- 1.1 Docker简介 2
- 1.1.1 Docker的概念 5
- 1.1.2 Docker的背景 5
- 1.1.3 容器与虚拟机 7
- 1.1.4 Docker与容器 8
- 1.1.5 Docker的应用场景 9
- 1.2 Docker的组件 10
- 1.3 Docker的相关技术 11
- 1.4 Docker的安装 12
- 1.4.1 Ubuntu下的安装 12
- 1.4.2 Red Hat下的安装 13
- 1.4.3 OS X下的安装 14
- 1.4.4 Windows下的安装 15
- 第2章 容器 17
- 2.1 容器的管理操作 17
- 2.1.1 创建容器 17
- 2.1.2 查看容器 20
- 2.1.3 启动容器 21
- 2.1.4 终止容器 22
- 2.1.5 删除容器 22
- 2.2 容器内信息获取和命令执行 23
- 2.2.1 依附容器 23
- 2.2.2 查看容器日志 24
- 2.2.3 查看容器进程 25
- 2.2.4 查看容器信息 25
- 2.2.5 容器内执行命令 26
- 2.3 容器的导入和导出 26
- 第3章 镜像 28
- 3.1 镜像的概念 28
- 3.1.1 镜像与容器 28
- 3.1.2 镜像的系统结构 29
- 3.1.3 镜像的写时复制机制 30
- 3.2 本地镜像的管理 30
- 3.2.1 查看 30
- 3.2.2 下载 31
- 3.2.3 删除 33
- 3.3 创建本地镜像 33
- 3.3.1 使用commit命令创建本地镜像 33
- 3.3.2 使用Dockerfile创建镜像 34
- 3.4 Docker Hub 40
- 3.4.1 Docker Hub简介 41
- 3.4.2 镜像的分发 41
- 3.4.3 自动化构建 43
- 3.4.4 创建注册服务器 47
- 第4章 数据卷及容器连接 49
- 4.1 容器网络基础 49
- 4.1.1 暴露网络端口 50
- 4.1.2 查看网络配置 53
- 4.2 数据卷 54
- 4.2.1 创建数据卷 54
- 4.2.2 挂载主机目录作为数据卷 55
- 4.2.3 挂载主机文件作为数据卷 57
- 4.2.4 数据卷容器 57
- 4.2.5 数据的备份与恢复 59
- 4.3 容器连接 60
- 4.3.1 容器命名 60
- 4.3.2 容器连接 60
- 4.3.3 代理连接 62
- 第二篇 案例篇:综合案例
- 第5章 创建SSH服务镜像 66
- 5.1 基于commit命令的方式 66
- 5.2 基于Dockerfile的方式 70
- 第6章 综合案例1:Apache+PHP+MySQL 72
- 6.1 构建mysql 镜像 72
- 6.1.1 编写镜像Dockerfile 73
- 6.1.2 构建和上传镜像 75
- 6.2 构建apache+php镜像 76
- 6.2.1 编写镜像Dockerfile 77
- 6.2.2 构建和上传镜像 79
- 6.3 启动容器 80
- 第7章 综合案例2:DLNNM 82
- 7.1 构建mongodb镜像 83
- 7.1.1 编写镜像Dockerfile 84
- 7.1.2 构建和上传镜像 84
- 7.2 构建Node.js镜像 86
- 7.2.1 项目源文件 86
- 7.2.2 编写镜像Dockerfile 88
- 7.2.3 构建和上传镜像 89
- 7.3 连接Node.js服务和MongoDB服务 89
- 7.3.1 制作代理镜像mongoabassador 89
- 7.3.2 启动MongoDB服务 91
- 7.3.3 启动Node-Web-API服务 92
- 7.4 搭建前端Nginx 93
- 7.4.1 构建镜像并运行 93
- 7.4.2 验证Web应用 95
- 第8章 阿里云Docker开发实践 97
- 8.1 阿里云Docker介绍 99
- 8.2 部署镜像注册服务器 102
- 8.3 开发 103
- 8.3.1 项目开发 103
- 8.3.2 制作和上传镜像 104
- 8.4 测试 105
- 8.5 部署 105
- 第9章 在阿里云上部署WordPress 107
- 9.1 初始化阿里云Docker环境 107
- 9.2 部署MySQL容器 109
- 9.3 部署WordPress容器 109
- 第10章 使用私有仓库 112
- 10.1 使用docker-registry 112
- 10.2 用户认证 115
- 第11章 使用Docker部署Hadoop集群 118
- 11.1 Hadoop简介 118
- 11.2 构建Hadoop镜像 119
- 11.3 构建Hadoop集群 122
- 11.3.1 Ambari简介 123
- 11.3.2 部署Hadoop集群 123
- 第三篇 高级篇:高级话题、API、工具及集群管理
- 第12章 容器网络 128
- 12.1 容器网络的原理 128
- 12.1.1 基础网络工具 128
- 12.1.2 网络空间虚拟化 131
- 12.1.3 网络设备虚拟化 132
- 12.1.4 容器运行的4 种网络模式 135
- 12.1.5 手动配置容器的网络环境 137
- 12.2 配置及原理 138
- 12.2.1 基本配置 138
- 12.2.2 容器互联配置及原理 140
- 12.2.3 容器内访配置及原理 142
- 12.2.4 容器外访配置及原理 143
- 12.2.5 创建点对点连接 144
- 12.3 网桥 146
- 12.3.1 配置网桥 146
- 12.3.2 构建自己的网桥 146
- 第13章 安全 148
- 13.1 命名空间 148
- 13.2 cgroups 151
- 13.3 Linux能力机制 152
- 第14章 DockerAPI 154
- 14.1 API 概述 154
- 14.2 绑定Docker后台监听接口 155
- 14.3 远程API 158
- 14.3.1 容器相关的API 158
- 14.3.2 镜像相关的API 164
- 14.4 平台API 167
- 14.4.1 注册服务器架构及流程 167
- 14.4.2 操作Hub API 169
- 14.5 API 实战:docker-py库编程 173
- 14.5.1 docker-py开发环境的搭建 173
- 14.5.2 docker-py库编程 174
- 第15章 Fig 177
- 15.1 Fig简介 177
- 15.2 Fig安装 177
- 15.3 Rails开发环境配置 178
- 15.4 Django开发环境配置 180
- 15.5 WordPress开发环境配置 182
- 15.6 Flocker:跨主机的Fig应用 184
- 第16章 Kubernetes 189
- 16.1 Kubernetes简介 189
- 16.2 核心概念 190
- 16.2.1 节点 190
- 16.2.2 Pod 190
- 16.2.3 服务 191
- 16.2.4 标签 194
- 16.3 架构和组件 195
- 16.3.1 主控节点 195
- 16.3.2 从属节点 198
- 16.3.3 组件交互流程 198
- 16.4 Kubernetes实战 200
- 16.4.1 环境部署 201
- 16.4.2 应用操作 207
- 第17章 shipyard 214
- 17.1 简介 214
- 17.2 shipyard操作 217
- 17.2.1 鉴权 217
- 17.2.2 引擎 217
- 17.2.3 容器 220
- 17.2.4 服务密钥 222
- 17.2.5 Web钩子密钥 223
- 17.2.6 事件 223
- 17.2.7 集群信息 224
- 第18章 Machine+Swarm+Compose225
- 18.1 Machine 225
- 18.2 Swarm 227
- 18.2.1 架构和组件 228
- 18.2.2 实操 230
- 18.2.3 发现服务和调度 233
- 18.3 Compose 239
- 第四篇 附录
- 附录A 常见镜像 242
- 附录B Docker API列表 262
- 附录C 参考资料 278