编辑推荐
对于应用程序,无论是在私有云部署还是在公有云部署,《Docker经典实例》都列出了丰富实用的解决方案和示例。
即使不具备Docker相关知识,基于书中实用的解决方案,开发人员也能在阅读几章之后打包和部署分布式应用程序。如果你是一位运维人员,你将很快掌握如何使用Docker来改善自己的工作方式。如果你是一位IT专业人士,你将能够学习到如何解决日常问题,比如创建、运行、共享和部署Docker镜像。
管理容器、挂载数据卷和容器连接
创建和共享镜像
单主机或多主机的Docker网络
处理Docker配置与开发等进阶问题
使用Kubernetes在分布式集群中部署多容器的应用程序
使用为Docker优化的新一代操作系统
学习用于应用程序部署、持续集成、服务发现和编排的工具
监控容器,并探讨不同的应用程序用例内容简介
《Docker经典实例》结构明晰,示例丰富详实,是全面实用的Docker入门教程。作者全面介绍了Docker相关各种工具和平台,涵盖网络、镜像管理、配置以及包括Kubernetes和Mesos在内的编排和调度生态系统,对私有云和公有云上部署的应用程序都给出了丰富实用的解决方案和示例。作者简介
SébastienGoasguen,Citrix高级开源解决方案架构师,主要从事ApacheCloudStack项目,帮助开发CloudStack生态系统。他目前是ApacheCloudStack项目的副总裁,也是Apachelibcloud项目管理委员会的成员。
具有10余年软件开发经验,关注后台开发技术和各种编程语言。做过电子商务、金融、企业系统以及Android手机开发,写过Delphi,也兼做系统管理员和DBA,近期在做与Docker相关的工作。
个人主页:http://liubin.org
微信公众号:西小口物语(xxk_talks)目录
《Docker经典实例》赞誉xi
前言 xiii
第1 章Docker入门 1
1.0 简介 1
1.1 在Ubuntu14.04上安装Docker 2
1.2 在CentOS6.5上安装Docker 3
1.3 在CentOS7上安装Docker 4
1.4 使用Vagrant创建本地Docker主机 4
1.5 在树莓派上安装Docker 6
1.6 在OSX上通过DockerToolbox安装Docker 7
1.7 在OSX上通过Boot2Docker安装Docker 9
1.8 在Windows8.1台式机上运行Boot2Docker 13
1.9 使用DockerMachine在云中创建Docker主机 14
1.10 使用Docker实验版二进制文件 18
1.11 在Docker中运行HelloWorld 18
1.12 以后台方式运行Docker容器 20
1.13 创建、启动、停止和移除容器 21
1.14 使用Dockerfile构建Docker镜像 22
1.15 在单一容器中使用Supervisor运行WordPress 24
1.16 使用两个链接在一起的容器运行WordPress博客程序 26
1.17 备份在容器中运行的数据库 28
1.18 在宿主机和容器之间共享数据 30
1.19 在容器之间共享数据 31
1.20 对容器进行数据复制 32
第2 章创建和共享镜像 34
2.0 简介 34
2.1 将对容器的修改提交到镜像 35
2.2 将镜像和容器保存为tar文件进行共享 36
2.3 编写你的第一个Dockerfile 37
2.4 将Flask应用打包到镜像 40
2.5 根据最佳实践优化Dockerfile 42
2.6 通过标签对镜像进行版本管理 43
2.7 使用Dockerprovider从Vagrant迁移到Docker 45
2.8 使用Packer构建Docker镜像 47
2.9 将镜像发布到DockerHub 50
2.10 使用ONBUILD镜像 53
2.11 运行私有registry 54
2.12 为持续集成/部署在DockerHub上配置自动构建 56
2.13 使用Git钩子和私有registry建立本地自动构建环境 60
2.14 使用Conduit进行持续部署 61
第3 章Docker网络 63
3.0 简介 63
3.1 查看容器的IP地址 64
3.2 将容器端口暴露到主机上 65
3.3 在Docker中进行容器链接 67
3.4 理解Docker容器网络 69
3.5 选择容器网络模式 72
3.6 配置Docker守护进程iptables和IP转发设置 74
3.7 通过Pipework理解容器网络 75
3.8 定制Docker网桥设备 80
3.9 在Docker中使用OVS 81
3.10 在Docker主机间创建GRE隧道 83
3.11 在Weave网络上运行容器 85
3.12 在AWS上运行Weave网络 87
3.13 在Docker主机上部署flannel覆盖网络 89
3.14 在多台Docker主机中使用DockerNetwork 90
3.15 深入DockerNetwork命名空间配置 94
第4 章开发和配置Docker 96
4.0 简介 96
4.1 管理和配置Docker守护进程 97
4.2 从源代码编译自己的Docker二进制文件 98
4.3 为开发Docker运行Docker测试集 100
4.4 使用新的Docker二进制文件替换当前的文件 101
4.5 使用nsenter 102
4.6 runc简介 104
4.7 远程访问Docker守护进程 106
4.8 通过Docker远程API完成自动化任务 107
4.9 从远程安全访问Docker守护进程 109
4.10 使用docker-py访问远程Docker守护进程 111
4.11 安全使用docker-py 113
4.12 更改存储驱动程序 113
第5 章Kubernetes 116
5.0 简介 116
5.1 理解Kubernetes架构 118
5.2 用于容器间连接的网络pod 120
5.3 使用Vagrant创建一个多节点的Kubernetes集群 121
5.4 在Kubernetes集群上通过pod启动容器 124
5.5 利用标签查询Kubernetes对象 126
5.6 使用replicationcontroller管理pod的副本数 127
5.7 在一个pod中运行多个容器 129
5.8 使用集群IP服务进行动态容器链接 131
5.9 使用DockerCompose创建一个单节点Kubernetes集群 135
5.10 编译Kubernetes构建自己的发布版本 139
5.11 使用hyperkube二进制文件启动Kubernetes组件 141
5.12 浏览KubernetesAPI 142
5.13 运行Kubernetes仪表盘 146
5.14 升级老版本API 147
5.15 为Kubernetes集群添加身份验证支持 149
5.16 配置Kubernetes客户端连接到远程集群 150
第6 章为Docker优化的操作系统 152
6.0 简介 152
6.1 在Vagrant中体验CoreOSLinux发行版 153
6.2 使用cloud-init在CoreOS上启动容器 155
6.3 通过Vagrant启动CoreOS集群,在多台主机上运行容器 157
6.4 在CoreOS集群上通过fleet启动容器 160
6.5 在CoreOS实例之间部署flannel覆盖网络 162
6.6 使用ProjectAtomic运行Docker容器 164
6.7 在AWS上启动Atomic实例运行Docker 165
6.8 快速体验在UbuntuCoreSnappy上运行Docker 167
6.9 在AWSEC2上启动UbuntuCoreSnappy实例 169
6.10 在RancherOS中运行Docker容器 173
第7 章Docker生态环境:工具 175
7.0 简介 175
7.1 使用DockerCompose创建WordPress站点 176
7.2 使用DockerCompose在Docker上对Mesos和Marathon进行测试 179
7.3 在DockerSwarm集群上运行容器 181
7.4 使用DockerMachine创建跨云计算服务提供商的Swarm集群 183
7.5 使用KitematicUI管理本地容器 185
7.6 使用DockerUI管理容器 187
7.7 使用Wharfee交互式shell 189
7.8 使用Ansible的Docker模块对容器进行编排 190
7.9 在Docker主机集群中使用Rancher管理容器 193
7.10 使用Lattice在集群中运行容器 196
7.11 通过ApacheMesos和Marathon运行容器 198
7.12 在Mesos集群上使用MesosDocker容器化 202
7.13 使用registrator发现Docker服务 204
第8 章云计算中的Docker 208
8.0 简介 208
8.1 在公有云中运行Docker 209
8.2 在AWSEC2上启动Docker主机 212
8.3 在GoogleGCE上启动Docker主机 215
8.4 在MicrosoftAzure上启动Docker主机 218
8.5 在AWS上使用DockerMachine启动Docker主机 220
8.6 在Azure上使用DockerMachine启动Docker主机 222
8.7 在Docker容器中运行云服务提供商的CLI 224
8.8 使用GoogleContainerregistry存储Docker镜像 226
8.9 在GCEGoogle-Container实例中使用Docker 229
8.10 通过GCE在云中使用Kubernetes 231
8.11 配置使用EC2ContainerService 234
8.12 创建一个ECS集群 237
8.13 在ECS集群中启动Docker容器 240
8.14 利用AWSBeanstalk对Docker的支持在云中运行应用程序 244
第9 章监控容器 248
9.0 简介 248
9.1 使用dockerinspect命令获取容器的详细信息 249
9.2 获取运行中容器的使用统计信息 251
9.3 在Docker主机上监听Docker事件 252
9.4 使用dockerlogs命令获取容器的日志 254
9.5 使用Docker守护进程之外的日志记录驱动程序 254
9.6 使用Logspout采集容器日志 257
9.7 管理Logspout路由来存储容器日志 259
9.8 使用Elasticsearch和Kibana对容器日志进行存储和可视化 261
9.9 使用Collectd对容器指标进行可视化 262
9.10 使用cAdvisor监控容器资源使用状况 267
9.11 通过InfluxDB、Grafana和cAdvisor监控容器指标 269
9.12 使用WeaveScope对容器布局进行可视化 270
第10 章应用用例 272
10.0 简介 272
10.1 CI/CD:构建开发环境 273
10.2 CI/CD:使用Jenkins和ApacheMesos构建持续交付工作流 276
10.3 ELB:使用confd和registrator创建动态负载平衡器 280
10.4 DATA:使用Cassandra和Kubernetes构建兼容S3的对象存储 286
10.5 DATA:使用DockerNetwork构建MySQLGalera集群 290
10.6 DATA:以动态方式为MySQLGalera集群配置负载平衡器 292
10.7 DATA:构建Spark集群 294
关于作者 298
关于封面 298