第1章 Docker 1
1.1 虚拟机与Docker 3
1.1.1 虚拟机 4
1.1.2 Docker 5
1.1.3 Linux容器 6
1.2 Docker镜像与容器 8
第2章 安装Docker 11
2.1 Linux 11
2.1.1 自动安装脚本 11
2.1.2 Ubuntu 11
2.1.3 Red Hat Enterprise Linux、 CentOS 12
2.1.4 使用最新二进制文件 12
2.2 Mac OSX 13
2.3 Windows 16
第3章 使用Docker 23
3.1 使用search命令搜索镜像 23
3.2 使用pull命令下载镜像 25
3.3 使用images命令列出镜像目录 25
3.4 使用run命令创建容器 25
3.5 使用Ps命令查看容器列表 26
3.6 使用start命令启动容器 26
3.7 使用restart命令重启容器 27
3.8 使用attach命令连接容器 27
3.9 使用exec命令从外部运行容器内的命令 27
3.10 使用stop命令终止容器 28
3.11 使用rm命令删除容器 28
3.12 使用rmi命令删除镜像 29
第4章 创建Docker镜像 31
4.1 熟悉Bash 31
4.2 编写Dockerfile 36
4.3 使用build命令创建镜像 37
第5章 查看Docker 39
5.1 使用history命令查看镜像历史 39
5.2 使用cp命令复制文件 40
5.3 使用commit命令从容器的修改中创建镜像 40
5.4 使用diff命令检查容器文件的修改 40
5.5 使用inspect命令查看详细信息 41
第6章 灵活使用Docker 43
6.1 搭建Docker私有仓库 43
6.1.1 存储镜像数据到本地 43
6.1.2 使用push命令上传镜像 44
6.1.3 存储镜像数据到Amazon S3 45
6.1.4 使用默认认证 46
6.2 连接Docker的容器 52
6.3 连接到其他服务器的Docker容器 53
6.4 使用Docker数据卷 56
6.5 使用Docker数据卷容器 59
6.6 创建Docker基础镜像 60
6.6.1 创建Ubuntu基础镜像 60
6.6.2 创建CentOS基础镜像 61
6.6.3 创建空基础镜像 62
6.7 在Docker内运行Docker 64
第7章 详细了解Dockerfile 67
7.1 .dockerignore 68
7.2 FROM 68
7.3 MAINTAINER 69
7.4 RUN 69
7.5 CMD 70
7.6 ENTRYPOINT 71
7.7 EXPOSE 73
7.8 ENV 73
7.9 ADD 74
7.10 COPY 76
7.11 VOLUME 77
7.12 USER 77
7.13 WORKDIR 78
7.14 ONBUILD 79
第8章 使用Docker部署应用程序 81
8.1 向一台服务器部署应用程序 81
8.1.1 在开发者PC安装Git并创建仓库 82
8.1.2 在开发者PC中使用Node.js编写Web服务器 83
8.1.3 在开发者PC中编写Dockerfile文件 84
8.1.4 在开发者PC中生成SSH密钥 85
8.1.5 在服务器端安装G it并创建仓库 86
8.1.6 在服务器中安装Docker 87
8.1.7 在服务器中安装SSH密钥 88
8.1.8 在服务器中安装Git Hook 89
8.1.9 在开发者PC中推送源代码 90
8.2 向多台服务器部署应用程序 91
8.2.1 在开发者PC安装G it并创建仓库 92
8.2.2 在开发者PC中使用Node.js编写Web服务器 93
8.2.3 在开发者PC中编写Dockerfile文件 94
8.2.4 在开发者PC中生成SSH密钥 95
8.2.5 在部署服务器安装Git并创建仓库 96
8.2.6 在部署服务器中生成SSH密钥 97
8.2.7 在部署服务器中安装Docker 98
8.2.8 在部署服务器中安装Docker注册服务器 99
8.2.9 在部署服务器中安装SSH密钥 100
8.2.10 在部署服务器中安装Git Hook 101
8.2.11 在应用程序服务器中安装Docker 103
8.2.12 在应用程序服务器中安装SSH密钥 104
8.2.13 在开发者PC中推送源代码 105
第9章 Docker监控 107
9.1 编写监控服务器Dockerfile 108
9.2 编写应用程序服务器Dockefile 111
9.3 在Web浏览器中查看图表 114
第10章 在Amazon Web Services中使用Docker 117
10.1 在Amazon EC2中使用Docker 117
10.2 在AWS Elastic Beanstalk中使用Docker 119
10.2.1 在AWS控制台部署Docker应用程序 119
10.2.2 使用Docker Hub公开仓库镜像 129
10.2.3 使用Docker Hub私有仓库的镜像 131
10.2.4 使用Git部署Elastic Beanstalk Docker应用程序 139
第11章 在Google Cloud Platform中使用Docker 145
11.1 安装Goolge Cloud SDK 145
11.2 在Compute Engine中使用Docker 147
11.3 在Container Engine中使用Docker 148
第12章 使用Docker Hub 151
12.1 加入Docker Hub 151
12.2 使用push命令上传镜像 153
12.3 创建Docker Hub私有仓库 155
12.4 使用Docker Hub Automated Build 157
第13章 使用Docker Remote API 167
13.1 使用Docker Remote API Python库 169
13.1.1 创建并启动容器 169
13.1.2 创建镜像 173
13.1.3 显示容器列表 175
13.1.4 显示镜像列表 176
13.1.5 其他示例与函数 176
13.2 使用Docker Remote API Python库进行HTTPS通信 187
13.2.1 创建证书 187
13.2.2 使用Python库 191
第14章 使用CoreOS 193
14.1 在VirtualBox中安装CoreOS 196
使用systemd运行服务 205
14.2 使用Vagrant安装CoreOS 206
14.3 使用etcd 211
14.3.1 创建etcd键与目录 211
14.3.2 输出etcd键与目录列表 212
14.3.3 设置自动删除etcd键与目录 212
14.3.4 监视etcd键 213
14.3.5 etcd其他命令 214
14.4 使用fleet 214
14.4.1 输出fleet机器列表 215
14.4.2 使用fleet运行Unit 215
14.4.3 输出fleet Unit列表 217
14.4.4 查看fleet Unit状态 217
14.4.5 测试fleet的自动恢复功能 218
14.4.6 使用fleet专用选项 219
14.4.7 灵活使用fleet Unit文件模板 222
14.4.8 灵活使用fleet sidekick模型 224
14.4.9 fleet其他命令 227
14.5 在云服务中使用CoreOS 227
14.5.1 在Amazon EC2中使用CoreOS 227
14.5.2 在Google Compute Engine中使用CoreOS 229
第15章 使用Docker搭建WordPress博客 231
15.1 编写WordPress Dockerfile文件 232
15.2 编写MySQL数据库Dockerfile文件 233
15.3 创建WordPress与数据库容器 236
第16章 使用Docker构建Ruby on Rails应用 237
16.1 安装Ruby与Rails 238
16.2 编写Rails Dockerfile 240
16.3 编写PostgreSQL数据库Dockerrfle文件 245
16.4 创建Rails与数据库容器 247
第17章 使用Docker构建Django应用 249
17.1 安装Django 250
17.2 编写Django Dockerfile文件 253
17.3 编写Oracle数据库Dockerfile文件 258
17.4 创建Django与数据库容器 261
第18章 Docker应用案例 263
18.1 与负载平衡相关的自动伸缩 263
18.2 整合开发、测试、运营 264
18.3 轻松迁移服务 265
18.4 用于测试 267
第19章 Docker命令与选项列表 269
19.1 attach 270
19.2 build 271
19.3 Commit 273
19.4 cp 273
19.5 create 274
19.6 diff 277
19.7 events 277
19.8 exec 278
19.9 export 280
19.10 history 280
19.11 images 281
19.12 import 281
19.13 info 282
19.14 inspect 283
19.15 kill 284
19.16 load 284
19.17 login 285
19.18 logout 286
19.19 logs 286
19.20 port 287
19.21 pause 287
19.22 ps 287
19.23 pull 288
19.24 push 289
19.25 restart 289
19.26 rm 289
19.27 rmi 290
19.28 run 291
19.29 save 296
19.30 search 297
19.31 start 297
19.32 stop 298
19.33 tag 298
19.34 top 299
19.35 unpause 299
19.36 version 300
19.37 wait 300
附录 编译Docker 301