目录
第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 RedHat Enterprise Linux、CentOS 12
2.1.4 使用最新二进制文件 12
2.2 Mac OS X 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 在服务器端安装Git 并创建仓库 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 安装Git 并创建仓库 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 编写应用程序服务器Dockerfile 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 数据库Dockerfile 文件 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
展开