《Docker从入门到实战》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:黄靖钧编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2017
  • ISBN:9787111573289
  • 页数:346 页
图书介绍:本书从Docker的相关概念与基础知识讲起,结合实际应用,通过不同开发环境的实战例子,详细介绍了Docker的基础知识与进阶实战的相关内容,以引领读者快速入门并提高。本书共19章,分3篇。第1篇容器技术与Docker概念,涵盖的内容有容器技术、Docker简介、安装Docker等。第2篇Docker基础知识,涵盖的内容有Docker基础、Docker镜像、Docker file文件、Docker仓库、Docker容器、数据卷、网络管理等。第3篇Docker进阶实战,涵盖的内容有操作系统、编排工具Compose、Web服务器与应用、数据库、编程语言、Docker API、私有仓库、集群网络、Docker安全等。本书非常适合所有对Docker感兴趣的入门新手阅读。不管是开发人员还是运维人员,都可以通过本书学习Docker的基本知识。即使不是程序员的读者,本书同样适合,普通用户完全可以把Docker当做一个“好玩的工具”来使用,以体验Docker带来的便捷。

第1篇 容器技术与Docker概念 2

第1章 容器技术 2

1.1 什么是容器 2

1.1.1 关于虚拟化 2

1.1.2 容器的定义 3

1.1.3 为什么使用容器 3

1.2 容器技术的前世今生 4

1.2.1 容器技术的起源 4

1.2.2 容器技术的发展 5

1.3 容器的原理 7

1.3.1 从namespace说起 7

1.3.2 认识Cgroups 9

1.3.3 容器的创建 11

1.4 容器云 12

1.5 容器与Docker 13

1.6 本章小结 13

第2章 Docker简介 14

2.1 什么是Docker 14

2.1.1 Docker的历史 14

2.1.2 Docker的现状 16

2.1.3 Docker的未来 17

2.2 Docker的功能及优缺点 18

2.2.1 Docker在解决什么 18

2.2.2 为什么选择Docker 19

2.2.3 Docker的缺点 19

2.3 Docker和虚拟机 19

2.3.1 Docker与虚拟机的区别 20

2.3.2 Docker与虚拟机的优缺点 20

2.4 Docker与runC 21

2.4.1 libcontainer与runC 21

2.4.2 runC的使用 22

2.4.3 runC原理 22

2.5 Docker基本架构 24

2.5.1 Docker Client介绍 24

2.5.2 Docker daemon介绍 25

2.5.3 Docker镜像 25

2.5.4 Docker容器 26

2.5.5 Docker仓库 26

2.6 本章小结 26

第3章 安装Docker 27

3.1 Linux系统 27

3.1.1 一键安装脚本 27

3.1.2 Debian发行版 28

3.1.3 Ubuntu发行版 30

3.1.4 Centos/Fedora发行版 33

3.1.5 Arch Linux发行版 37

3.1.6 Suse/openSUSE发行版 38

3.2 Windows与Mac OS系统 38

3.2.1 在Windows上安装原生Docker 39

3.2.2 在Mac OS上安装原生Docker 41

3.3 二进制安装 43

3.3.1 获取Linux二进制包 44

3.3.2 获取Mac OS X二进制包 44

3.3.3 获取Windows的二进制包 45

3.3.4 树莓派安装Docker 45

3.4 本章小结 46

第2篇 Docker基础知识 48

第4章 Docker基础 48

4.1 Docker基本操作 48

4.1.1 依附容器的docker attach命令 49

4.1.2 构建镜像的docker build命令 51

4.1.3 提交容器的docker commit命令 52

4.1.4 复制文件到宿主机的docker cp命令 52

4.1.5 创建容器的docker create命令 53

4.1.6 查看容器变化的docker diff命令 54

4.1.7 查看事件的docker events命令 54

4.1.8 进入容器的docker exec命令 55

4.1.9 导出容器的docker export命令 56

4.1.10 查看镜像历史的docker history命令 56

4.1.11 查看本地镜像的docker images命令 57

4.1.12 导入容器的docker import命令 58

4.1.13 查看Docker信息的docker info命令 58

4.1.14 查看各项详细信息的docker inspect命令 59

4.1.15 杀死容器的docker kill命令 60

4.1.16 导入镜像的docker load命令 60

4.1.17 登录仓库的docker login命令 61

4.1.18 登出仓库的docker logout命令 61

4.1.19 查看容器日志的docker logs命令 62

4.1.20 管理网络的docker network命令 62

4.1.21 管理节点的docker node命令 63

4.1.22 暂停容器的docker pause命令 64

4.1.23 查看容器端口的docker port命令 64

4.1.24 查看本地容器信息的docker ps命令 65

4.1.25 拉取镜像的docker pull命令 65

4.1.26 推送镜像的docker push命令 66

4.1.27 重命名容器的docker rename命令 66

4.1.28 重启容器的docker restart命令 66

4.1.29 删除容器的docker rm命令 67

4.1.30 删除镜像的docker rmi命令 67

4.1.31 运行容器的docker run命令 68

4.1.32 导出镜像的docker save命令 72

4.1.33 搜索镜像的docker search命令 73

4.1.34 管理服务的docker service命令 74

4.1.35 启动容器的docker start命令 74

4.1.36 查看容器状态的docker stats命令 75

4.1.37 停止容器的docker stop命令 75

4.1.38 管理集群的docker swarm命令 76

4.1.39 设置镜像标签的docker tag命令 76

4.1.40 查看容器进程的docker top命令 77

4.1.41 恢复暂停容器的docker unpause命令 77

4.1.42 更新容器的docker update命令 77

4.1.43 查看Docker版本的docker version命令 78

4.1.44 管理数据卷的docker volume命令 78

4.1.45 设置等待的docker wait命令 79

4.2 启动第一个Docker容器 79

4.3 构建第一个Docker镜像 80

4.4 本章小结 81

第5章 Docker镜像 82

5.1 认识镜像 82

5.1.1 使用docker pull拉取镜像 82

5.1.2 搜索镜像 83

5.1.3 查看镜像信息 84

5.2 创建镜像 86

5.2.1 剖析Hello World镜像 86

5.2.2 从Dockerfile构建镜像 86

5.2.3 自动构建镜像 87

5.2.4 提交容器为镜像 90

5.3 导出和导入镜像 91

5.3.1 导出镜像到本地文件系统 91

5.3.2 从本地文件系统导入镜像 91

5.4 发布镜像 91

5.4.1 发布镜像到Docker Hub 92

5.4.2 给镜像打上标签 92

5.4.3 发布到第三方镜像仓库 92

5.5 删除镜像 93

5.5.1 删除本地镜像 93

5.5.2 删除仓库镜像 93

5.6 Docker镜像扩展 94

5.6.1 Docker镜像里有什么 94

5.6.2 Docker镜像的存储方式 95

5.6.3 联合挂载 95

5.6.4 Git式管理 96

5.7 本章小结 96

第6章 Dockerfile文件 97

6.1 Dockerfile基本结构 97

6.1.1 Dockerfile基础 97

6.1.2 Dockerfile的书写规则 98

6.1.3 基础镜像信息和维护者信息 99

6.2 Dockerfile指令 99

6.2.1 指定基础镜像的FROM指令 99

6.2.2 设置维护者信息的MAINTAINER指令 99

6.2.3 执行构建命令的RUN指令 99

6.2.4 设置镜像环境变量的ENV指令 100

6.2.5 复制文件的COPY指令 100

6.2.6 添加文件的ADD指令 100

6.2.7 指定端口暴露的EXPOSE指令 100

6.2.8 设置镜像启动命令的CMD指令 101

6.2.9 设置接入点的ENTRYPOINT指令 102

6.2.10 设置数据卷的VOLUME指令 102

6.2.11 设置构建用户的USER指令 103

6.2.12 设置工作目录的WORKDIR指令 103

6.2.13 设置二次构建指令的ONBUILD指令 104

6.2.14 设置元数据的LABEL指令 105

6.2.15 设置构建变量的ARG指令 105

6.2.16 设置停止信号的STOPSIGNAL指令 105

6.2.17 检查镜像状态的HEALTHCHECK指令 105

6.2.18 设置命令执行环境的SHELL指令 106

6.3 镜像构建实战 106

6.3.1 收集应用信息 106

6.3.2 编写Dockerfile 106

6.3.3 设置自动构建 107

6.4 本章小结 108

第7章 Docker仓库 109

7.1 官方仓库Docker Hub 109

7.1.1 Docker Hub登录与使用 109

7.1.2 Docker Hub与Docker Cloud 110

7.2 国内镜像仓库 111

7.2.1 中国科学技术大学镜像仓库 111

7.2.2 DaoCloud镜像加速器 112

7.2.3 阿里云镜像加速器 113

7.2.4 灵雀云镜像加速器 114

7.2.5 时速云镜像加速器 115

7.2.6 网易蜂巢 116

7.2.7 建镜像加速器 116

7.3 私有仓库 117

7.3.1 搭建私有仓库 117

7.3.2 私有仓库的使用 117

7.3.3 私有仓库安全性 118

7.4 Registry原理 118

7.4.1 Registry组成 118

7.4.2 Registry工作流程 119

7.5 本章小结 120

第8章 Docker容器 121

8.1 容器基本操作 121

8.1.1 创建容器 122

8.1.2 启动容器 122

8.1.3 后台运行容器 123

8.1.4 自动重启容器 123

8.1.5 停止与杀死容器 124

8.1.6 删除容器 125

8.1.7 查看容器信息 125

8.2 进入容器内部 128

8.2.1 使用attach进入容器 128

8.2.2 使用exec进入容器 129

8.2.3 使用nsenter进入容器 129

8.3 导出和导入容器 130

8.3.1 导出容器 130

8.3.2 导入容器 130

8.4 容器结构 131

8.4.1 容器格式是什么 131

8.4.2 容器内部结构 132

8.5 本章小结 133

第9章 数据卷 134

9.1 数据卷是什么 134

9.1.1 数据卷介绍 134

9.1.2 数据卷容器介绍 135

9.2 为容器挂载数据卷 135

9.2.1 挂载数据卷 135

9.2.2 挂载数据卷容器 136

9.2.3 数据卷挂载小结 137

9.3 备份、恢复、迁移数据卷 139

9.3.1 备份数据卷 139

9.3.2 迁移、恢复数据卷 140

9.4 容器数据卷扩展 140

9.4.1 卷插件介绍 140

9.4.2 Convoy的使用 140

9.4.3 Flocker的使用 141

9.5 本章小结 142

第10章 网络管理 143

10.1 Docker网络基础 143

10.1.1 端口映射 143

10.1.2 端口暴露 145

10.1.3 容器互联 146

10.2 Docker网络模式 147

10.2.1 none模式 147

10.2.2 container模式 149

10.2.3 host模式 150

10.2.4 bridge模式 151

10.2.5 overlay模式 152

10.3 Docker网络配置 152

10.3.1 Daemon网络参数 152

10.3.2 配置DNS 153

10.3.3 network命令 154

10.4 本章小结 154

第3篇 Docker进阶实战 156

第11章 操作系统 156

11.1 Alpine发行版 156

11.1.1 官方镜像 156

11.1.2 运行Alpine Linux 157

11.1.3 构建基于Alpine Linux的镜像 157

11.1.4 Alpine Linux软件仓库 158

11.2 Busybox发行版 159

11.2.1 官方镜像 159

11.2.2 运行Busybox 159

11.2.3 构建基于Busybox的镜像 159

11.3 Debian/Ubuntu发行版 160

11.3.1 官方镜像 160

11.3.2 运行Debian/Ubuntu 160

11.3.3 构建基于Debian/Ubuntu的镜像 161

11.4 CentOS/Fedora发行版 162

11.4.1 官方镜像 162

11.4.2 运行CentOS/Fedora 162

11.5 CoreOS发行版 163

11.5.1 为什么使用CoreOS 163

11.5.2 用Vagrant安装CoreOS 163

11.6 RancherOS发行版 165

11.6.1 为什么使用RancherOS 165

11.6.2 在服务器安装RancherOS 166

11.6.3 基于RancherOS的Docker管理 167

11.7 本章小结 167

第12章 编排工具Compose 169

12.1 安装Docker Compose 169

12.1.1 二进制安装 169

12.1.2 使用Python pip安装 169

12.2 Compose命令基础 170

12.2.1 指定配置文件 171

12.2.2 指定项目名称 171

12.2.3 Compose环境变量 171

12.2.4 构建服务镜像的build命令 172

12.2.5 生成DAB包的bundle命令 173

12.2.6 检查配置语法的config命令 173

12.2.7 创建服务容器的create命令 174

12.2.8 清理项目的down命令 174

12.2.9 查看事件的events命令 175

12.2.10 进入服务的exec命令 176

12.2.11 杀死服务容器的kill命令 176

12.2.12 查看服务容器日志的logs命令 176

12.2.13 暂停服务容器的pause命令 177

12.2.14 查看服务容器端口状态的port命令 177

12.2.15 查看项目容器信息ps命令 177

12.2.16 拉取项目镜像的pull命令 178

12.2.17 推送项目镜像的push命令 179

12.2.18 重启服务容器的restart命令 179

12.2.19 删除项目容器的rm命令 179

12.2.20 执行一次性命令的run命令 180

12.2.21 设置服务容器数量的scale命令 182

12.2.22 启动服务容器的start命令 184

12.2.23 停止服务容器的stop命令 184

12.2.24 取消暂停的unpause命令 185

12.2.25 启动项目的up命令 185

12.3 Compose配置文件 186

12.3.1 配置文件基础 186

12.3.2 基本配置 187

12.3.3 网络配置 196

12.3.4 配置扩展 197

12.4 Compose实战 200

12.4.1 部署Django 200

12.4.2 部署Rails 202

12.4.3 部署WordPress 203

12.5 本章小结 205

第13章 Web服务器与应用 206

13.1 Apache服务器 206

13.1.1 官方镜像 206

13.1.2 运行官方镜像 208

13.1.3 基于Ubuntu构建Apache镜像 209

13.1.4 基于Alpine构建Apache镜像 210

13.1.5 第三方优质镜像 211

13.2 Nginx服务器 212

13.2.1 官方镜像介绍 212

13.2.2 运行官方镜像 212

13.2.3 构建Nginx镜像 214

13.2.4 第三方镜像推荐 216

13.3 Tomcat服务器 216

13.3.1 官方镜像介绍 217

13.3.2 运行官方镜像 217

13.3.3 构建Tomcat镜像 218

13.4 其他Web服务器 220

13.4.1 Caddy服务器 220

13.4.2 WebLogic服务器 221

13.5 本章小结 223

第14章 数据库 224

14.1 MySQL数据库 224

14.1.1 官方镜像的剖析与使用 224

14.1.2 构建自己的MySQL镜像 226

14.2 PostgreSQL数据库 228

14.2.1 官方镜像的使用 228

14.2.2 官方镜像的剖析 230

14.2.3 构建PostgreSQL镜像 232

14.2.4 数据备份与导入 234

14.3 Redis数据库 235

14.3.1 官方镜像的使用 235

14.3.2 构建自己的Redis镜像 236

14.4 MongoDB数据库 238

14.4.1 官方镜像的使用 238

14.4.2 构建自己的MongoDB镜像 239

14.5 其他 240

14.5.1 在容器中使用SQLite 240

14.5.2 构建自己的MariaDB镜像 241

14.5.3 使用Docker部署Orcale XE数据库 243

14.6 本章小结 244

第15章 编程语言 245

15.1 C/C++语言 245

15.1.1 官方镜像library/gcc 245

15.1.2 基于Alpine构建C/C++镜像 246

15.2 Golang语言 247

15.2.1 官方镜像library/golang 248

15.2.2 Beego框架 250

15.2.3 自助Git服务——Gogs 250

15.2.4 基于Alpine构建Golang镜像 252

15.3 Java语言 253

15.3.1 官方镜像library/openjdk 253

15.3.2 基于Alpine构建Java镜像 254

15.3.3 Tomcat服务器 255

15.3.4 下一代集成开发环境——Eclipse Che 256

15.4 JavaScript(Node.js)语言 258

15.4.1 官方镜像library/node 258

15.4.2 vue.js框架 260

15.4.3 Express框架 261

15.4.4 浏览器里的IDE——Cloud9-IDE 262

15.4.5 基于Alpine构建Node.js镜像 264

15.5 PHP语言 265

15.5.1 官方镜像library/php 265

15.5.2 快速安装扩展 267

15.5.3 LNMP环境组合 268

15.5.4 基于Alpine构建PHP镜像 270

15.5.5 自建私有云存储——ownCloud 271

15.5.6 Typecho博客系统 273

15.6 Python语言 275

15.6.1 官方镜像library/python 275

15.6.2 Flask框架 275

15.6.3 基于Alpine构建Python镜像 277

15.7 Swift语言 277

15.7.1 构建Swift镜像 277

15.7.2 Kitura框架 278

15.8 本章小结 280

第16章 Docker API介绍 281

16.1 认识Docker API 281

16.1.1 RESTful介绍 281

16.1.2 开启socket 282

16.1.3 使用curl 283

16.1.4 使用Postman 284

16.2 Docker Remote API介绍 286

16.2.1 容器API 286

16.2.2 镜像API 293

16.3 其他API 299

16.3.1 常用API 300

16.3.2 Trusted Registry API介绍 302

16.4 本章小结 304

第17章 私有仓库 305

17.1 Docker Registry介绍 305

17.1.1 部署Docker Registry 305

17.1.2 私有仓库的push与pull 305

17.1.3 配置Registry 306

17.1.4 添加Docker Hub Mirror功能 311

17.2 认证与前端 312

17.2.1 设置反代理 312

17.2.2 为私有仓库添加认证服务 313

17.2.3 为私有仓库添加可视化界面 315

17.3 企业级私有仓库Harbor 316

17.3.1 Harbor配置详解 316

17.3.2 配置HTTPS 318

17.3.3 使用Compose启动Harbor 320

17.4 私有仓库前端授权工具Portus 321

17.4.1 一键部署Portus 321

17.4.2 手动配置 321

17.4.3 启动Portus 322

17.5 本章小结 323

第18章 集群网络 324

18.1 Swarm集群 324

18.1.1 认识Swarm 324

18.1.2 建立跨主机网络 328

18.1.3 在跨主机网络上部署应用 328

18.1.4 Swarm集群负载 331

18.2 第三方网络管理工具 333

18.2.1 Weave介绍 333

18.2.2 Flannel介绍 335

18.2.3 Pipwork介绍 335

18.3 第三方服务发现 336

18.3.1 Etcd介绍 336

18.3.2 Consul介绍 337

18.4 第三方集群管理 337

18.4.1 Kubernetes介绍 337

18.4.2 Mesos Shipyard介绍 339

18.5 本章小结 339

第19章 Docker安全 340

19.1 Docker安全机制 340

19.1.1 Daemon安全 340

19.1.2 容器与镜像安全 341

19.2 Docker资源控制 342

19.2.1 限制CPU 342

19.2.2 限制内存 343

19.2.3 限制I/O 343

19.2.4 文件系统防护 344

19.2.5 镜像瘦身神器Docker Slim 344

19.2.6 强制访问控制工具SELinux或AppArmor 344

19.3 本章小结 345