编辑推荐
适读人群 :本书适合Docker开发人员阅读。 国内云加速+云存储“迅雷云”团队倾力打造
全面讲解Docker原理、操作,精选实战案例
详解网络、安全、API、Kubernetes、shipyard、Machine+Swarm+Compose
内容简介
《Docker开发实践》由浅入深地介绍了Docker的实践之道,首先讲解Docker的概念、容器和镜像的相关操作、容器的数据管理等内容,接着通过不同类型的应用说明Docker的实际应用,然后介绍了网络、安全、API、管理工具Fig、Kubernetes、shipyard以及Docker三件套(Machine+Swarm+Compose)等,列举了常见镜像、Docker API等内容。
作者简介
曾金龙,计算机硕士,中山大学毕业,就职于迅雷网络,国内覆盖面广的“迅雷P2P引擎”核心研发成员。研究方向为P2P网络、音视频传输和CEP系统。对Docker技术有着深入的理解,是国内较早将Docker引入到实际软件开发、测试和部署中的人。
肖新华,工学学士,衡阳师范学院毕业,项目架构师。4年互联网软件开发经验,痴迷技术,对新生技术敏感。曾就职于迅雷网络、腾讯科技。
刘清,硕士,华中科技大学毕业,就职于迅雷网络,主要研究方向为移动下载库、音视频传输、调度策略设计等。
内页插图
精彩书评
★Docker是当之无愧的Go语言杀手级应用,并且现如今Docker这个词的含义越来越丰富了,以至于它已经代表了容器技术的生态圈。本书奉行实践出真知,其中的案例都非常棒。更为关键的是,其中的高级篇对Docker生态圈的各个新成员也做了非常翔实的介绍和实践,这真的很难能可贵。
——郝林,Go语言北京用户组发起人,《Go并发编程实战》作者
★腾讯的互娱的开发节奏,只有Docker跟得上!如果你想你的团队加快开发速度,那么我推荐你使用Docker,而本书从基础、案例到高级话题,都有很全面的覆盖。
——易剑,腾讯互动娱乐事业群高级架构师
★这是一本关于Docker的好书,值得所有想了解Docker的人放在键盘左边。
——李毅秋,人人网技术总监
★云计算的初级是数据的云化,下一步是程序的云化,而Docker则是当前程序云化工具。让你的程序一次配置,全网增量迁移、运行。本书出自一线互联网研发人员之手,它是实战的结晶,所涉案例都是互联网公司的真实应用,对Docker的应用都不是浅尝辄止,而是带你登堂入室。
——潘向荣,迅雷看看高级技术经理
目录
第一篇 基础篇:Docker基础
第1章 Docker简介
1.1 Docker简介
1.1.1 Docker的概念
1.1.2 Docker的背景
1.1.3 容器与虚拟机
1.1.4 Docker与容器
1.1.5 Docker的应用场景
1.2 Docker的组件
1.3 Docker的相关技术
1.4 Docker的安装
1.4.1 Ubuntu下的安装
1.4.2 Red Hat下的安装
1.4.3 OS X下的安装
1.4.4 Windows下的安装
第2章 容器
2.1 容器的管理操作
2.1.1 创建容器
2.1.2 查看容器
2.1.3 启动容器
2.1.4 终止容器
2.1.5 删除容器
2.2 容器内信息获取和命令执行
2.2.1 依附容器
2.2.2 查看容器日志
2.2.3 查看容器进程
2.2.4 查看容器信息
2.2.5 容器内执行命令
2.3 容器的导入和导出
第3章 镜像
3.1 镜像的概念
3.1.1 镜像与容器
3.1.2 镜像的系统结构
3.1.3 镜像的写时复制机制
3.2 本地镜像的管理
3.2.1 查看
3.2.2 下载
3.2.3 删除
3.3 创建本地镜像
3.3.1 使用commit命令创建本地镜像
3.3.2 使用Dockerfile创建镜像
3.4 Docker Hub
3.4.1 Docker Hub简介
3.4.2 镜像的分发
3.4.3 自动化构建
3.4.4 创建注册服务器
第4章 数据卷及容器连接
4.1 容器网络基础
4.1.1 暴露网络端口
4.1.2 查看网络配置
4.2 数据卷
4.2.1 创建数据卷
4.2.2 挂载主机目录作为数据卷
4.2.3 挂载主机文件作为数据卷
4.2.4 数据卷容器
4.2.5 数据的备份与恢复
4.3 容器连接
4.3.1 容器命名
4.3.2 容器连接
4.3.3 代理连接
第二篇 案例篇:综合案例
第5章 创建SSH服务镜像
5.1 基于commit命令的方式
5.2 基于Dockerfile的方式
第6章 综合案例1:Apache+PHP+MySQL
6.1 构建mysql 镜像
6.1.1 编写镜像Dockerfile
6.1.2 构建和上传镜像
6.2 构建apache+php镜像
6.2.1 编写镜像Dockerfile
6.2.2 构建和上传镜像
6.3 启动容器
第7章 综合案例2:DLNNM
7.1 构建mongodb镜像
7.1.1 编写镜像Dockerfile
7.1.2 构建和上传镜像
7.2 构建Node.js镜像
7.2.1 项目源文件
7.2.2 编写镜像Dockerfile
7.2.3 构建和上传镜像
7.3 连接Node.js服务和MongoDB服务
7.3.1 制作代理镜像mongoabassador
7.3.2 启动MongoDB服务
7.3.3 启动Node-Web-API服务
7.4 搭建前端Nginx
7.4.1 构建镜像并运行
7.4.2 验证Web应用
第8章 阿里云Docker开发实践
8.1 阿里云Docker介绍
8.2 部署镜像注册服务器
8.3 开发
8.3.1 项目开发
8.3.2 制作和上传镜像
8.4 测试
8.5 部署
第9章 在阿里云上部署WordPress
9.1 初始化阿里云Docker环境
9.2 部署MySQL容器
9.3 部署WordPress容器
第10章 使用私有仓库
10.1 使用docker-registry
10.2 用户认证
第11章 使用Docker部署Hadoop集群
11.1 Hadoop简介
11.2 构建Hadoop镜像
11.3 构建Hadoop集群
11.3.1 Ambari简介
11.3.2 部署Hadoop集群
第三篇 高级篇:高级话题、API、工具及集群管理
第12章 容器网络
12.1 容器网络的原理
12.1.1 基础网络工具
12.1.2 网络空间虚拟化
12.1.3 网络设备虚拟化
12.1.4 容器运行的4 种网络模式
12.1.5 手动配置容器的网络环境
12.2 配置及原理
12.2.1 基本配置
12.2.2 容器互联配置及原理
12.2.3 容器内访配置及原理
12.2.4 容器外访配置及原理
12.2.5 创建点对点连接
12.3 网桥
12.3.1 配置网桥
12.3.2 构建自己的网桥
第13章 安全
13.1 命名空间
13.2 cgroups
13.3 Linux能力机制
第14章 DockerAPI
14.1 API 概述
14.2 绑定Docker后台监听接口
14.3 远程API
14.3.1 容器相关的API
14.3.2 镜像相关的API
14.4 平台API
14.4.1 注册服务器架构及流程
14.4.2 操作Hub API
14.5 API 实战:docker-py库编程
14.5.1 docker-py开发环境的搭建
14.5.2 docker-py库编程
第15章 Fig
15.1 Fig简介
15.2 Fig安装
15.3 Rails开发环境配置
15.4 Django开发环境配置
15.5 WordPress开发环境配置
15.6 Flocker:跨主机的Fig应用
第16章 Kubernetes
16.1 Kubernetes简介
16.2 核心概念
16.2.1 节点
16.2.2 Pod
16.2.3 服务
16.2.4 标签
16.3 架构和组件
16.3.1 主控节点
16.3.2 从属节点
16.3.3 组件交互流程
16.4 Kubernetes实战
16.4.1 环境部署
16.4.2 应用操作
第17章 shipyard
17.1 简介
17.2 shipyard操作
17.2.1 鉴权
17.2.2 引擎
17.2.3 容器
17.2.4 服务密钥
17.2.5 Web钩子密钥
17.2.6 事件
17.2.7 集群信息
第18章 Machine+Swarm+Compose
18.1 Machine
18.2 Swarm
18.2.1 架构和组件
18.2.2 实操
18.2.3 发现服务和调度
18.3 Compose
第四篇 附录
附录A 常见镜像
附录B Docker API列表
附录C 参考资料
前言/序言
Docker从提出到现在已经走过了两年的时间,在这两年里,它一直都是云 计算领域的热点。可以说,它是2014年互联网最热门的技术。Docker得到Google、微软、IBM、RedHat的声援,而它也不负众望,在这短短的两年里快速迭代,一步步变得更加完善。在Docker之前,开发者都深陷软件环境的配置之苦,虽然说并不是所有的软件配置都很难,但不同环境下的配置问题却层出不穷,相信很多读者和我有类似的经历,就是想用一款开源软件,结果配置了许久都跑不起来,然后不得不放弃用它。而网上总是有很多的答疑,可是跟着照做,发现在自己的机器上就是跑不起来。环境差异,可能会让原本简单的问题复杂化,迟滞我们的开发进程。拿来主义对于懒惰的程序员来说是件好事,我们都希望拿来就用,这样就可以专注于我们本该干的活。对于测试人员和运维人员来说,也是如此,没人喜欢处理这些本不该重点关注、处理不好却会让人寸步难行的问题。Docker就像一个打包器,可以把你的应用及其环境整体打包,然后很方便地迁移到不同的平台,到处运行。在用户看来就如同运行在原来的机器上一样。或许该有人说我用虚拟机也可以实现同样的效果,为什么要选择Docker。当两样东西都能够做同一件事情时,我们比的是效率。你可以在一台服务器上部署几个或者十几个虚拟机实例,但我相信没人会在一台服务器上部署上百个虚拟机实例,这是因为资源的限制。而在一台服务器上部署上百个Docker容器却并不是什么难事。在镜像的传输和共享方面,Docker也做得非常好,它能够只传输那些改变了的数据,而不用像传输虚拟机镜像那样,动辄至少几百兆。在共享方面,Docker建立了DockerHub,你可以根据已有的镜像定制自己的镜像,而无需每次都再造轮子。如此接地气的技术,怪不得业内都惊呼Docker是下一个Hadoop。
本书的起源
虽然Docker人气旺盛,但关于Docker的书却少之又少,更别说汗牛充栋了,这主要是Docker出现的时间尚短。对于已有的书,基础内容不够体系,大多只停留寥寥几个基础命令的展示,并没有很好地归纳整理;而高级篇又只停留于粗浅的概念介绍,毫无实践价值,特别是对Docker具有很大作用的管理工具,例如Fig、Kubernetes、shipyard等内容,没有一本书去系统讲解它们。我们觉得这么好的技术,应该有更为系统的书去让更多的人了解它,理解它,这正是本书存在的价值。
如果不是遇到了王军花编辑,或许就没有本书,而正是在她的鼓励下,才让我们有勇气去将一些原本零碎的知识归纳整理为一本完整的书。
本书内容
本书主要介绍了Docker的实践之道。我们按照由浅入深的编排将本书分为三篇。在基础篇,主要是让读者认识Docker的概念和基础操作,对比介绍了Docker和虚拟机等技术,从容器、镜像、数据卷以及容器的连接等方面说明Docker的操作。通过对基础篇的学习,读者不仅对Docker有了全局的认识,而且能够对Docker的基础操作得心应手。该篇包含第1章至第4章的内容。
第1章从概念上介绍了Docker,让读者对它的概念、背景、组件以及相关技术有了全局的认识。
第2章和第3章分别介绍了容器和镜像的相关操作,二者是Docker操作的核心对象。
第4章介绍了容器的网络基础、数据卷的配置以及多个容器之间的互联。第二篇是案例篇。在这一篇中,我们通过不同类型的应用来说明Docker的实际应用。我们不做案例的简单堆砌,而是通过不同类型的案例来说明各个知识点的应用,它包含第5章至第11章。
第5章介绍了如何创建SSH服务镜像,这满足了日常SSH远程登录的需求。
第6章构建了一个采用Apache作为Web服务器、PHP作为Web开发语言、MySQL作为数据库的Web应用案例。
第7章构建了一个采用Node.js作为开发语言、MongoDB作为数据库的Web案例,该案例着重说明了跨主机的多容器代理互联。
第8章和第9章说明了如何在公共云平台——阿里云上部署Docker应用,这里以WordPress为例进行介绍。
第10章介绍了如何使用私有仓库。
第11章将云计算的两大热点联合,说明了如何通过Docker来构建Hadoop镜像及集群。第三篇是高级篇。在这一篇中,对Docker的API以及管理工具Fig、Kubernetes 、shipyard以及Docker三件套(Machine+Swarm+Compose)都有实践操作,该篇包含第12章至第18章。
第12章介绍的是容器的高级网络知识。
第13章从命名空间、cgroups、Linux能力机制以及服务端防护等方面入手介绍了安全方面的知识。
第14章则是通过curl工具来学习Docker的API接口,并给出docker-py库的编程实例。
在第15章至第18章中,我们分别介绍了Fig、Kubernetes、shipyard以及Machine+Swarm+Compose三件套,这些都是为了更好地管理和使用Docker的工具。第四篇为附录。在附录A中,我们按照系统镜像、数据库镜像、Web镜像、语言 镜像的类别来编排,列举了常见的镜像,以供读者查阅。附录B是DockerAPI列表的归纳整理,分为容器相关和镜像相关,亦是为了方便读者查阅。附录C是我们在写作过程中所用到的资料引用。
阅读须知
阅读本书时,最好能够从前往后依序阅读。特别是基础篇,是理解案例篇和高级篇的基石,读者最好能够读完基础篇,再阅读案例篇和高级篇。在案例篇和高级篇中,章和章之间的联系并没有那么紧密,例如第6章的案例和第7章的案例并没有关联,它们属于侧重点不同的案例,所以无需依序阅读。高级篇的工具也是如此,读者可以根据需求的迫切程度而选择性阅读。
目标读者
一切想了解及深入理解Docker技术的人,都是本书的目标读者。对于初级读者,通过本书的基础篇,你就可以成为一个能够灵活应用Docker的人。当你对Docker有一定了解后,通过学习案例篇和高级篇,你也就可以登堂入室了。
致谢
本书是很多人共同劳动的成果。三位作者要感谢一些人,感谢他们为本书所作出的巨大贡献和支持。
感谢在迅雷的同事:特别感谢甘南南和潘向荣两位的工作支持和悉心指导,感谢他们的慷慨大方,提供给我们充足的时间来写作本书。此外,还需感谢的同事有涂海涛、李明良、吴小强、易萌萌、何赞裕、吴建国和何锐,感谢他们在成书过程中的宝贵意见。特别感谢本书的编辑王军花,没有她,本书就只能停留在笔者的脑海里。她不仅仅是一位资深的计算机类图书编辑,更像一名计算机专家,本书很多内容都是在她的指点下得以完善。
本书还需致谢的人有:盛建强博士、高怀恩博士、广发证券信息部的刘润佳和周英贵、美团网的蒋朋、百度的徐则水和罗剑波、腾讯的杨晓颖和郑克松、阿里巴巴的田晓娇以及李海龙、邱俊凌、杨文武、刘汇洋、冯学汉等人。感谢他们让各自公司相关平台成为本书部分案例的尝鲜者,并提出了诸多宝贵意见。
最后,感谢我们的家人。没有你们的支持,就没有这一切。
Docker开发实践 下载 mobi epub pdf txt 电子书 格式
评分
☆☆☆☆☆
好书,专业必备,学docker容器必备专业书籍啊。
评分
☆☆☆☆☆
纸质很好,是正品,物流也比较给力,各个方面做的都比较完美。
评分
☆☆☆☆☆
书还不错,讲的很多底层实现,对于现在最新的docker版本有点低。现在最新的docker版本为1.13,本书的版本是1.10。1.12之后,包括引进了很多新功能,这里都没有,建议买书的同学买近两个版本的书比较好。docker还是高速发展的状态,版本更迭很快
评分
☆☆☆☆☆
书不错。讲解很到位。
评分
☆☆☆☆☆
好书,京东的物流和配送员,十分满意他们的服务!五颗星
评分
☆☆☆☆☆
书很不错,值得一看,主要是打特价时候买的。买技术书很值得。
评分
☆☆☆☆☆
包装还不错,书没有损坏,内容还没看,不过看目录还算挺系统的
评分
☆☆☆☆☆
速度快,准备好好阅读一下
评分
☆☆☆☆☆
比书店便宜,包装很好没有破损缺页,物流快次日到非常感谢。