中国领先的IT技术网站
|
|

前言

《Docker从入门到实战》本书从Docker的相关概念与基础知识讲起,结合实际应用,通过不同开发环境的实战例子,详细介绍了Docker的基础知识与进阶实战的相关内容,以引领读者快速入门并提高。本节为前言。

作者:黄靖钧来源:机械工业出版社|2017-10-17 17:59

CTO训练营 | 12月3-5日,深圳,是时候成为优秀的技术管理者了


前言

Docker作为一个2013年才诞生的开源项目,其发展的速度和火爆程度却令人惊叹。容器技术本不是什么新鲜事物,但是在Docker的整合下,一切变得清晰、易用起来,并且随着各大云计算厂商的进场,使Docker得到了极大的推广。

如今,Docker已经成为容器技术领域当仁不让的领头羊。国内外以Docker技术起家的创业公司如雨后春笋般涌现出来,体现了容器市场的巨大需求。越来越多的企业开始逐步把传统的应用开发流程迁移到Docker容器中作为开发部署流程的一环。伴随而来的是各种复杂的需求与Docker尚不算完善的功能所产生的矛盾,这些问题制约着企业容器化的脚步。

另一方面,Docker以其友好的使用体验使广大开发者对其“一见倾心”,越来越多的开发者使用Docker作为应用分发部署的一个重要阵地。尽管如此,Docker对于大部分开发者而言还是尚未开拓的疆土。特别是对于国内环境而言,Docker的推广基本上靠国内几家与Docker相关的初创公司。本书以一位普通的全栈开发者的身份,详细介绍了Docker的基础知识,分享了企业级容器云的实战经验。

为什么学习Docker

如果您是一名开发者,想必遇到过“这个程序只有在我的机器上才可以运行”的情况。随着用户需求变得多样,软件愈发复杂,所依赖环境愈发庞大,使得软件在其他机器上运行需要做大量的迁移工作。更糟糕的是,这些琐事完成后软件还不一定能正常运行。

为了解决这些问题,虚拟化技术开始普及。人们可以通过各种虚拟化技术来实现软件的迁移和分发。最常见的就是虚拟机或KVM技术。在虚拟机里完成开发再迁移到线上不会出现环境问题,解决了迁移过程中的诸多难题,但是仍然存在性能低下、分发流程麻烦、耗时和成本昂贵等问题。在云计算时代这些问题更加突出。

随着容器技术的普及,人们意识到容器技术可以极大地降低成本。容器技术具有启动快、体积小和分发迅速等诸多特点,这简直就是开发人员梦寐以求的工具。

而“欣喜若狂”的不止是开发人员,还有运维人员。如果在十年前,普通企业要管理上百台服务器,最可能使用的方法是通过Shell脚本的方式使用SSH连接到所有服务器然后执行相同的指令,并把日志保存起来归档。这种方式我们称之为第一代运维。那时维护服务器是一项繁重的工作,工程师不得不把大量的时间耗费在服务器管理上。

随着技术的发展,虚拟化技术的普及和云计算的出现,企业需要管理的服务器数量大幅增长。过去我们只要管理企业内部数据中心的物理服务器,而现在则要管理遍布全球的服务器,运维成本愈发昂贵。于是开发者开始针对云计算时代服务器运维方式做出改变,涌现出了诸如Ansible、Puppet、SaltStack和Chef等出色的运维工具。人们可以通过这些工具快速地完成对上百台甚至上千台服务器的管理操作。这被称之为第二代运维。它极大地解决了管理庞大服务器集群的难题,使人们可以在屏幕面前通过一个界面管理所有服务器。但本质上这些工具都是通过SSH或者类似于SSH的方式连接到服务器来管理服务器集群,这意味着其实第二代运维和第一代运维并没有发生根本性的改变。

上面那些运维工具在云计算普及的大势下很快暴露了它们的问题——速度。因为大部分运维工具依靠的是SSH连接来交换信息,这使得整个过程十分耗时,更不用说其他复杂的管理操作。而随着容器技术的爆发,以Docker为代表的容器技术开始发力,并随着DevOps概念的普及,使运维发生了根本性的改变。容器集群管理不再是通过低效的SSH来连接服务器,甚至不需要登录服务器就可以完成对服务器的管理。人们发现,通过容器管理集群可以抛弃传统的“SSH+秘钥”的连接方式来连接服务器,这对大规模集群来说是一个极大的变革。而且在速度上,容器技术在上百台服务器上启动应用只需要一眨眼的时间,这使得运维的工作大大减轻。

运维和开发在容器时代逐步“融为一体”,形成一个流水线车间的工作环境。这对于软件行业来说无疑是一次巨大的变革。

如果您也对传统的软件开发和运维的烦琐流程感到吃力,又对容器技术感兴趣,那么本书将是很好的入门书籍。

如果您不是职业的开发和运维人员,对Linux也不算熟悉,但属于一个对Docker感兴趣的极客,想通过Docker部署一些复杂的应用,本书也一样适合您。本书虽以Linux为平台介绍Docker的使用,但是与在Windows和Mac OS平台上的操作基本一致,普通用户完全可以把Docker当做一个“好玩的工具”来使用,体验Docker带来的便捷。

本书特色

适合新手入门。本书在基础方面内容非常详尽,包括镜像的构建、容器的运行监控、网络的管理、仓库的应用、集群的部署等内容,全面、细致地介绍了Docker的基本使用方法与实现原理,适合新手入门。

应用结合实际。本书在实战应用部分结合实际应用,从不同的角度分析问题并提出对应的解决办法,扩展了很多实用的实战技巧。实战部分根据不同类型的开发环境构建基础开发环境镜像,使读者可以直接使用Docker进入测试开发,并根据不同类型的应用部署做了详细介绍。

范例丰富。在实战章节中的范例皆由浅入深,全面、实用且不缺乏趣味性,有助于读者了解其内部原理,进而应用到其他项目的思考与开发中。全书的代码均有指明出处以及链接,读者可以通过文中链接找到源代码。

版本最新。本书使用目前流行的Docker 1.12版本,紧跟Docker更新步伐,介绍了新的Docker Swarm集群管理方式。

本书内容体系

第1篇  容器技术与Docker概念(第1~3章)

本篇主要介绍了容器技术的发展历史与容器技术的原理,并解释了Docker与其他容器技术的区别,对比了Docker与虚拟机的异同,客观地评价了两者的优缺点。另外,本篇还介绍了Docker分别在Linux、Windows和Mac OS系统下的安装方法,以及二进制安装方法。

第2篇  Docker基础知识(第4~10章)

本篇主要介绍了Docker的基本操作及简单应用,包括Docker基础、Docker镜像、Docker file文件、Docker仓库、Docker容器、数据卷的使用方法与原理及网络管理等内容。通过对本篇内容的学习,读者可以掌握最常用的Docker知识。

第3篇  Docker进阶实战(第11~19章)

本篇包含了许多Docker在实际开发中的应用实例,包括操作系统、编排工具Compose、Web 服务器与应用、数据库、编程语言、Docker API、私有仓库、集群网络、Docker 安全等内容,详细讲解了Docker在容器云环境中的应用。读者通过这部分内容的学习已经完全可以在实际生产环境中应用Docker了。

本书读者对象

Dock开发入门人员;

容器技术爱好者;

各类运维人员;

基于Docker构建云计算平台的技术人员;

大、中专院校的学生;

相关培训学校的学员。

本书配套资源及获取方式

本书涉及的源代码文件等配套学习资源需要读者自行下载。请读者登录机械工业出版社华章公司的网站www.hzbook.com,然后搜索到本书页面,按照页面上的说明进行下载即可。

本书作者

本书由黄靖钧主笔编写。其他参与编写的人员有张昆、张友、赵桂芹、晁楠、高彩琴、郭现杰、刘琳、王凯迪、王晓燕、吴金艳、尹继平、张宏霞、张晶晶、陈冠军、魏春、张燕、范陈琼、孟春燕、王晓玲、顼宇峰、肖磊鑫、薛楠、杨丽娜、闫利娜、王韶、李杨坡、刘春华、黄艳娇、刘雁。

本书的顺利出版,要感谢机械工业出版社华章公司各位编辑的辛勤劳动和付出,另外对网络上提供有益资料的众多作者也在此表示感谢。

虽然我们对本书中所述内容都尽量核实,并多次进行文字校对,但因时间所限,加之水平所限,书中疏漏和错误在所难免,敬请广大读者批评指正。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目      下一节
点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月最赞

读 书 +更多

精通ASP+XML+CSS网络开发混合编程

《精通ASP+XML+CSS网络开发混合编程》介绍当前网络开发的主流平台与技术之一的ASP+CSS+XML的知识与应用,全书各知识点均配以实例,按照基础...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Phthon,最神奇好玩的编程语言