猜你喜欢
Docker 技术入门与实战

Docker 技术入门与实战

书籍作者:杨保华 ISBN:9787111488521
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:5140
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

  在云计算时代,开发者将应用转移到云上已经解决了硬件管理的问题,然而软件配置和管理相关的问题依然存在。Docker的出现正好能帮助软件开发者开阔思路,尝试新的软件管理方法来解决这个问题。通过掌握Docker,开发人员便可享受先进的自动化运维理念和工具,无需运维人员介入即可顺利运行于各种运行环境。
  《Docker技术入门与实战》分为三大部分:Docker入门、实战案例和高级话题。第一部分(第1~8章)介绍Docker与虚拟化技术的基本概念,包括安装、镜像、容器、仓库、数据管理等;第二部分(第9~17章)通过案例介绍Docker的应用方法,包括与各种操作系统平台、SSH服务的镜像、Web服务器与应用、数据库的应用、各类编程语言的接口、私有仓库等;第三部分(第18~21章)是一些高级话题,如Docker核心技术、安全、高级网络配置、相关项目等。
  《Docker技术入门与实战》从基本原理开始入手,深入浅出地讲解Docker的构建与操作,内容系统全面,可帮助开发人员、运维人员快速部署应用。

作者简介

  杨保华,博士,清华大学毕业,现为 IBM 中国研究院研究员。主要从事数据中心网络解决方案的研发与部署,技术方向包括云计算、软件定义网络(SDN)、网络安全等,是国内较早从事 SDN 和网络虚拟化相关技术的推广者,同时也是 DockerPool 开源社区的发起人之一。


  戴王剑,资深架构师,多年来一直从事计算机网络、服务器架构设计,负责过多个省级项目的架构设计。热衷开源事业,是 DockerPool 开源社区的发起人之一。


  曹亚仑,85后,全栈 Web 开发者,擅长并专注于 SaaS 系统架构设计与研发, 兴趣为 PaaS 和智能可穿戴设备。出版有译著《Arduino 无线传感器网络实践指南》以及开源图书《程序员禅修指南》。

编辑推荐
中国首部Docker著作,一线Docker先驱实战经验结晶,来自IBM和新浪等多位技术专家联袂推荐!
  结合企业生产环境,深入浅出地剖析 Docker 的核心概念、应用技巧、实现原理以及生态环境,为解决各类问题提供了有价值的参考。
前言
Foreword 序一
  信息技术领域一直试图解决的核心问题之一是提供强大的计算能力。在过去很长一段时间里,我们可以依靠硬件性能的提升来提高物理计算资源的能力,提升处理器的主频或者增加每个处理器里面的处理核心的数量。然而这个时代随着摩尔定律无法胜过物理定律而不得不终结。
  在云计算时代,信息技术所面临的难题则截然不同。分布式、虚拟化、大数据……每一项挑战都不是仅仅依靠硬件或软件的局部优化就能得到解决的,更需要通过高效的资源利用来“压榨”计算平台的每一点运算能力。
  作为充分发掘计算平台能力的Linux容器虚拟化技术,在近些年得到广泛的关注和发展。从早期IBM发起的LXC项目,到今天如火如荼的Docker项目,这些不断涌现的创新项目给计算模式本身带来了巨大的变革。市面上关于传统虚拟机相关技术的书籍有不少,但是探讨容器虚拟化技术的著作寥寥无几。尽管互联网上已经出现了很多关于容器虚拟化、Docker的文章,但这些文章或过于简略,或仅关注某个技术方面,总体上缺少系统化的从概念、到实现、到如何使用的介绍。这给广大信息产业从业人员了解最新的技术潮流带来了不小的障碍。
  值得庆幸的是,能够第一时间拜读这本《Docker技术入门与实战》。作为国内开发者撰写的首本探讨Docker容器虚拟化技术的书籍,一方面它深入浅出地讲解了Docker应用的诸多话题,包括围绕镜像、容器、仓库等核心概念如何来实现“Build、Ship、Run”的高效流程;另一方面,难能可贵的是书中提供了大量翔实的实战案例,涵盖DevOps领域的典型场景。无论是Docker技术的初学者还是业内的一线研发人员或资深专家,本书都值得一阅。
  作者之一的杨保华博士在加入IBM之后,一直从事云计算与软件定义网络领域的相关解决方案和核心技术的研发,热心关注OpenStack、Docker等开源社区,热衷使用开源技术,并积极参与开源社区的讨论、积极提交代码。这使得他既能从宏观上准确把握Docker技术在整个云计算产业中的定位,又能从微观上清晰理解技术人员所渴望获知的核心之处。
  如果你只是Docker的初学者,阅读本书,或许并不能让你立刻成为行业内的专业人士,但一定能让你马上体会Docker技术所带来的众多优势。如果你已经开始使用Docker,阅读本书也可以帮助你解答实践中的一些问题,帮助你更恰当地使用Docker技术。本书深入浅出,讲解到位,是一本值得常置案头的好书。
  刘天成
  IBM中国研究院,云计算运维技术研究组经理
  2014年11月

  Foreword 序二
  最近的几年,云计算是计算机与互联网界的焦点,它的广泛应用离不开虚拟化技术的支持。作为Linux下的容器虚拟化工具,Docker以其轻便易用而受人关注。
  这本书向读者清晰地介绍了Docker这个虚拟化工具;详细比较了Docker和传统虚拟机在组织架构、实现技术和性能上的差异。在此基础上,本书围绕着镜像、容器、仓库三个部分,从实践的角度出发,讲解了Docker的安装、配置、使用的方式。在本书的后面几个章节,也介绍了许多Docker的实现细节和工作原理。总体而言,本书从实际的案例入手,由浅至深,循序渐进,内容相当丰富。
  对于正在寻找虚拟化工具的用户来说,年轻而有活力的Docker项目绝对是首选。而如果你正在使用或打算使用Docker,或者想学习一些新的技术以丰富自己,那就一定不要错过这本书。书中有大量的实践案例、完备的细节讲解,将这本书常备于手边,比起查阅复杂繁琐的文档,能为工作或学习节省更多的时间。
  王灿
  浙江大学计算机学院副教教授
  2014年11月

  前言 Preface
  在一台服务器上同时运行一百个虚拟机,肯定会被认为是痴人说梦。而在一台服务器上同时运行一千个Docker容器,这已经成为现实。在计算机技术高速发展的今天,昔日的天方夜谭正在一个个变成现实。
  多年的研发和运维(DevOps)经历中,笔者时常会碰到这样一个困境:用户的需求越来越多样,系统的规模越来越庞大,运行的软件越来越复杂,环境配置问题所造成的麻烦层出不穷……为了解决这些问题,开源社区推出过不少优秀的工具。这些方案虽然在某些程度上确能解决部分“燃眉之急”,但是始终没有一种方案能带来“一劳永逸”的效果。
  让作为企业最核心资源的工程师们花费大量的时间,去解决各种环境和配置引发的 Bug,这真的正常吗?
  回顾计算机的发展历程,最初,程序设计人员需要直接操作各种枯燥的机器指令,编程效率之低可想而知。高级语言的诞生,将机器指令的具体实现成功抽象出来,从此揭开了计算机编程效率突飞猛进的大时代。那么,为什么不能把类似的理念(抽象与分层)也引入到现代的研发和运维领域呢?
  Docker无疑在这一方向上迈出了具有革新意义的一步。笔者在刚接触Docker时,就为它所能带来的敏捷工作流程而深深吸引,也为它能充分挖掘云计算资源的效能而兴奋不已。我们深信,Docker的出现,必将给DevOps技术,甚至整个信息技术产业的发展带来深远的影响。
  笔者曾尝试编写了介绍Docker技术的中文开源文档。短短一个月的时间,竟收到了来自全球各个地区超过20万次的阅读量和全五星的好评。这让我们看到国内技术界对于新兴开源技术的敏锐嗅觉和迫切需求,同时也倍感压力,生怕其中有不妥之处,影响了大家学习和推广Docker技术的热情。在开源文档撰写过程中,我们一直在不断思考,在生产实践中到底怎么用Docker才是合理的?在“华章图书”的帮助下,终于有了现在读者手中的这本书。
  与很多技术类书籍不同,本书中避免一上来就讲述冗长的故事,而是试图深入浅出、直奔主题,在最短时间内让读者理解和掌握最关键的技术点,并且配合实际操作案例和精炼的点评,给读者提供真正可以上手的实战指南。
  本书在结构上分为三大部分。第一部分是Docker技术的基础知识介绍,这部分将让读者对Docker技术能做什么有个全局的认识;第二部分将具体讲解各种典型场景的应用案例,供读者体会Docker在实际应用中的高效秘诀;第三部分将讨论一些偏技术环节的高级话题,试图让读者理解Docker在设计上的工程美学。最后的附录归纳了应用Docker的常见问题和一些常用的参考资料。读者可根据自身需求选择阅读重点。全书主要由杨保华和戴王剑主笔,曹亚仑写作了编程开发和实践之道章节。
  本书在写作过程中参考了官方网站上的部分文档,并得到了DockerPool技术社区网友们的积极反馈和支持,在此一并感谢!
  成稿之际,Docker已经发布了增强安全特性的1.32版本。衷心祝愿Docker及相关技术能够快速成长和成熟,让众多IT从业人员的工作和生活都更加健康、更加美好!
  作者于2014年11月

  作者简介 About the Authors
  杨保华 清华大学博士毕业,现为IBM中国研究院研究员。主要从事数据中心网络解决方案的研发与部署,技术方向包括云计算、软件定义网络(SDN)、网络安全等,是国内较早从事SDN和网络虚拟化相关技术的推广者,同时也是DockerPool开源社区的发起人之一。他的个人主页为yeasy.github.io。
  在本书的写作期间,得到了我的父母亲和妻子吴俞萱女士的关怀与支持,得到了公司领导和同事们的信任与鼓励,特别是刘天成帮忙审阅了部分内容。在此表示最深厚的感谢!
  戴王剑 资深架构师,从事计算机网络、服务器架构设计多年,负责过多个省级项目的架构设计。热衷开源事业,是DockerPool开源社区的发起人之一。
  写作期间,我的女儿戴子萱刚刚出生,感谢我的父母亲以及我的妻子刘乃华对我的大力支持,没有你们的辛勤付出,我不可能安心写完这本书,我爱你们!在这里一并感谢公司领导和同事对我的信任,感谢郭捷给予的硬件支持,在经过半年左右的测试之后,Docker在公司的项目中正式上线,并给我们的开发、测试、生产带来了实实在在的效率。特别感谢我的导师:浙江师范大学杨传斌教授,没有杨老师,我可能在毕业前就放弃从事IT行业了。本书的出版能得到杨老师的肯定,是最让我开心的事。
  曹亚仑 85后,全栈Web开发者,擅长并专注于SaaS系统架构设计与研发,兴趣方向为PaaS和智能可穿戴设备。译著有《Arduino无线传感器网络实践指南》,开源图书有《程序员禅修指南》。
  我要感谢我的父母和妻子丁小芬,感谢你们在我写书过程中所给予的帮助和支持,我爱你们。

目录

序一
序二
前言
作者简介
第一部分 Docker入门
第1章 初识Docker 3
1.1 什么是Docker 3
1.2 为什么要使用Docker 5
1.3 虚拟化与Docker 7
1.4 本章小结 8
第2章 Docker的核心概念和安装 9
2.1 核心概念 9
2.2 安装Docker 11
2.3 本书环境介绍 14
2.4 本章小结 15
第3章 镜像 16
3.1 获取镜像 16
3.2 查看镜像信息 17
3.3 搜寻镜像 20
3.4 删除镜像 21
3.5 创建镜像 23
3.6 存出和载入镜像 24
3.7 上传镜像 25
3.8 本章小结 25
第4章 容器 26
4.1 创建容器 26
4.2 终止容器 28
4.3 进入容器 29
4.4 删除容器 31
4.5 导入和导出容器 31
4.6 本章小结 32
第5章 仓库 33
5.1 Docker Hub 33
5.2 Docker Pool简介 35
5.3 创建和使用私有仓库 36
5.4 本章小结 38
第6章 数据管理 39
6.1 数据卷 39
6.2 数据卷容器 40
6.3 利用数据卷容器迁移数据 42
6.4 本章小结 42
第7章 网络基础配置 43
7.1 端口映射实现访问容器 43
7.2 容器互联实现容器间通信 45
7.3 本章小结 47
第8章 使用Dockerfile创建镜像 48
8.1 基本结构 48
8.2 指令 49
8.3 创建镜像 53
8.4 本章小结 53
第二部分 实战案例
第9章 操作系统 57
9.1 Busybox 57
9.2 Debian/Ubuntu 60
9.3 CentOS/Fedora 62
9.4 CoreOS 64
9.5 本章小结 69
第10章 创建支持SSH服务的镜像 70
10.1 基于commit命令创建 70
10.2 使用Dockerfile创建 74
10.3 本章小结 79
第11章 Web服务器与应用 80
11.1 Apache 80
11.2 Nginx 86
11.3 Tomcat 95
11.4 Weblogic 102
11.5 LAMP 119
11.5.1 下载LAMP镜像 119
11.5.2 使用默认方式启动LAMP容器 119
11.5.3 部署自己的PHP应用 120
11.5.4 在PHP程序中连接数据库 120
11.6 CMS 121
11.7 本章小结 123
第12章 数据库应用 124
12.1 MySQL 124
12.2 Oracle XE 129
12.3 MongoDB 130
12.4 本章小结 134
第13章 编程语言 136
13.1 PHP 136
13.1.1 PHP技术栈 136
13.1.2 PHP常用框架 142
13.1.3 相关资源 147
13.2 C/C++ 147
13.2.1 GCC 147
13.2.2 LLVM 150
13.2.3 Clang 150
13.3 Java 151
13.4 Python 153
13.4.1 Python技术栈 153
13.4.2 Flask 155
13.4.3 Django 157
13.4.4 相关资源 159
13.5 Perl 160
13.5.1 Perl技术栈 160
13.5.2 Catalyst 161
13.5.3 相关资源 161
13.6 Ruby 162
13.6.1 Ruby技术栈 162
13.6.2 JRuby 163
13.6.3 Ruby on Rails 164
13.6.4 Sinatra 165
13.6.5 相关资源 166
13.7 JavaScript 166
13.7.1 JavaScript技术栈 166
13.7.2 Node.js 167
13.7.3 Express 168
13.7.4 AngularJS 170
13.7.5 相关资源 171
13.8 Go 172
13.8.1 Go技术栈 172
13.8.2 Beego 174
13.8.3 Revel 175
13.8.4 Martini 177
13.8.5 相关资源 179
13.9 本章小结 180
第14章 使用私有仓库 181
14.1 使用docker-registry 181
14.2 用户认证 183
14.3 使用私有仓库批量上传镜像 186
14.4 仓库配置文件 189
14.5 本章小结 196
第15章 构建Docker容器集群 197
15.1 使用自定义网桥连接跨主机容器 197
15.2 使用Ambassador容器 199
15.3 本章小结 200
第16章 在公有云上使用Docker 202
16.1 公有云上安装Docker 202
16.1.1 CentOS 6.5系统 202
16.1.2 Ubuntu 14.04系统 207
16.2 阿里云Docker的特色服务 207
16.3 本章小结 213
第17章 Docker实践之道 214
17.1 个人学习之道 214
17.1.1 温故而知新 215
17.1.2 众人拾柴火焰高 216
17.2 技术创业之道 217
17.3 中小型企业实践之道 218
17.3.1 开发、测试和发布中应用Docker 218
17.3.2 应用Docker到生产环境 220
17.4 本章小结 220
第三部分 高级话题
第18章 Docker核心技术 223
18.1 基本架构 223
18.2 命名空间 225
18.3 控制组 227
18.4 联合文件系统 229
18.5 Docker网络实现 230
18.6 本章小结 232
第19章 Docker安全 233
19.1 命名空间隔离的安全 233
19.2 控制组资源控制的安全 234
19.3 内核能力机制 234
19.4 Docker服务端的防护 235
19.5 其他安全特性 236
19.6 本章小结 237
第20章 高级网络配置 238
20.1 网络启动与配置参数 238
20.2 配置容器DNS和主机名 240
20.3 容器访问控制 241
20.4 映射容器端口到宿主主机的实现 243
20.5 配置docker0网桥 244
20.6 自定义网桥 245
20.7 创建一个点到点连接 246
20.8 工具和项目 247
20.9 本章小结 251
第21章 Docker相关项目 252
21.1 平台即服务方案 252
21.2 持续集成 253
21.3 管理工具 256
21.4 编程开发 261
21.5 其他项目 262
21.6 本章小结 267
附录
附录A 常见问题汇总 270
附录B 常见仓库 276
附录C Docker命令查询 294
附录D Docker资源链接 299

Docker 技术入门与实战的书评

Docker 技术入门与实战

【编辑推荐】 《Docker技术入门与实战》是中国首部Docker著作,一线Docker先驱实战经验结晶,来自IBM和新浪等多位技术专家联袂推荐! 《Docker技术入门与实战》结合企业生产环境,深入浅出地剖析 Docker 的核心概.........

2015-01-25 17:13

标签
docker,虚拟化,计算机,云计算,Docker,编程,软件开发,程序员
产品特色