《第一本Docker书》试读:译者序:我们走在容器化的大道上

如果你是一位技术爱好者,时刻关心业界最新动态,那么最近一定没少听说Docker吧,这绝对是在技术圈线上线下都在谈论的一个热门话题。 说实话,Docker算不上是什么全新的技术,它基于LXC(LinuX Containers),使用AUFS,而这些都是已经存在很长时间并被广泛应用了的技术。但运营PaaS服务的dotCloud公司将这些技术整合到一起,提供了简单易用的跨平台、可移植的容器解决方案。Docker最初由dotCloud公司在2013年发布。自发布以来,其发展速度之快超乎了很多人的想象,一路高歌猛进,今年6月份终于发布了1.0稳定版,而dotCloud在2013年10月干脆连公司名字也改为了Docker, Inc.。 Docker也可以被称为轻量级虚拟化技术。与传统的VM相比,它更轻量,启动速度更快,单台硬件上可以同时跑成百上千个容器,所以非常适合在业务高峰期通过启动大量容器进行横向扩展。现在的云计算可能更多地是在使用类似EC2的云主机,以后也许应该更多地关注容器了。 Docker是可移植(或者说跨平台)的,可以在各种主流Linux发布版或者OS X以及Windows上(需要使用boot2docker或者虚拟机)使用。Java可以做到“一次编译,到处运行”,而Docker则可以称为“构建一次,在各平台上运行”(Build once,run anywhere)。 从这一点可以豪不夸张地说,Docker是革命性的,它重新定义了软件开发、测试、交付和部署的流程。我们交付的东西不再只是代码、配置文件、数据库定义等,而是整个应用程序运行环境:“OS+各种中间件、类库+应用程序代码”。 无论你是开发人员、测试人员还是运维人员,随着对Docker越来越深入的了解,你都会爱上它。我们只需要运行几条docker run就可以配置好开发环境,通过Dockerfile或者Docker Hub与他人分享我们的镜像,与其他服务集成,进行开发流程的自动化。 开发工程师开发、提交代码到代码服务器(GitHub、BitBucket、Gitlab等)。 代码服务器通过webhook调用CI/CD服务,如Codeship(没错,就是2014年11月刚融资800万美元的那家初创公司)、Shippable、CircleCI或者自建Jenkins等。 CI服务器下载最新代码,构建Docker镜像,并进行测试。 自动集成测试通过之后,就可以将之前构建的镜像推送到私有Registry。 运维使用新版的Docker镜像进行部署。 试想一下这种开发流程是不是很酷?除了工作流程的自动化之外,还能消除线上线下环境不一致导致的问题。以后“在我的机器上运行得好好的……”这种托词应该再也没人信了吧。 Docker是为Infrastructure as code而生的,通过Dockerfile,镜像创建过程变得自动且可重复,还能进行版本管理。 Docker是为不可变基础设施(Immutable Infrastructure)而生的,对无状态服务的升级、部署将会更轻便更简单:我们无需再对它们的配置进行修改,只需要销毁这个服务并重建一个就好了。 Docker也是为云计算而生的,Docker的出现离不开云计算的兴起,反过来更多的云计算服务提供商也都开始把Docker纳入自己的服务体系之中,比如最近一个大事件就是Google刚刚发布了Google Container Engine(alpha)服务,一个基于其开源Docker编配工具Kubernetes的“Cluster-as-a-Service”。容器技术在云计算时代的重要程度由此可见一斑。 这是一本带领读者进入Docker世界的入门书。阅读本书除了能帮助读者理解Docker的基本原理,熟练掌握Docker的各种常见的基本操作之外,还能帮助读者了解Docker的实际应用场景以及如何利用Docker进行开发等话题,比如,如何使用Docker和Jenkins进行测试,如何对应用程序进行Docker化,以及如何构建由Node.js和Redis组成的多容器应用栈。当然,书中也不会忘了最近比较火的Fig——一个Docker编配工具,开发此工具的公司是位于英国伦敦的Orchard Laboratories,前段时间该公司刚刚被Docker收购,继续Fig的开发。现代应用程序都离不开API,Docker当然也不例外。在第8章中,读者将学到如何使用API而不是Docker命令来对Docker镜像和容器进行管理。如果你也想为Docker贡献自己的力量,那么一定不能错过第9章的内容,这一章将会主要介绍如何给Docker提issue,如何完成Docker文档,以及如何构建Docker开发环境和提交Pull Request。 最后,我谨代表合译者李兆海和巨震,向在本书翻译过程中给与了很大帮助的一些人表示最诚挚的感谢。Fiona(冯钊)在本书编写过程中做了很多沟通和协调工作,也对很多术语翻译提出了建议。马全一是Docker中文社区和https://docker.cn的创始人,也是本书中文版翻译工作的发起人。此外还有人民邮电出版社的杨海玲等编辑老师,没有她们的认真校对和排版工作,这本书也不会以完美的形式展现在各位读者面前。 ——刘斌

>第一本Docker书

第一本Docker书
作者: [澳]詹姆斯•特恩布尔(James Turnbull)
isbn: 7115377332
书名: 第一本Docker书
页数: 252
译者: 李兆海, 刘斌, 巨震
定价: 59
出版社: 人民邮电出版社
出版年: 2014-12
装帧: 平装