腾讯的互娱的开发节奏,只有Docker跟得上!如果你想你的团队加快开发速度,那么我推荐你使用Docker

云计算的初级是数据的云化,下一步是程序的云化,而Docker则是当前程序云化最好的工具。让你的程序一次配置,全网增量迁移、运行。




Docker——容器与容器云http://product.dangdang.com/23765626.html

Docker这项技术本身就是将多种思想和技术融合的产物



第一本Docker书

http://product.dangdang.com/23623098.html


Docker是一个开源的应用容器引擎,让开发者可以将他们的应用和依赖包打包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何接口。几乎没有性能开销,可以很容易地在机器和数据中心中运行。*重要的是,它不依赖于任何语言、框架或包装系统。


DevOps未死,ContainerOps已到.


开发环境甚至是桌面环境是可以通过Docker容器来实现统一的。

不管是Linux还是Windows,开发环境最终都可以被容器管理起来,开发配置管理将会变得非常简单。


当软件的开发环境、版本管理、交付和运行都以Docker为工具Container为基础进行流转时,就构成了以Container为核心的开发和运维流程,软件的构架也因此发生改变(Micro Service的构架方式可能会因此流行)。但持续集成、持续部署和自动化运维等生产理念没有改变,只是增加了Container的解决方案,未来必定会有基于Docker的平台来管理整个开发和生产的流程。



Docker技术入门与实战http://product.dangdang.com/23620853.html


在云计算时代,虚拟化技术无疑是整座信息技术大厦最核心的一块基石。


在IT云化的今天,系统的规模和复杂性,呼唤着标准化的构件和自动化的管理,Docker 正是这种强烈需求的产物之一。


举个简单的应用场景的例子。假设用户试图基于最常见的LAMP(Linux + Apache + MySQL + PHP)组合来运维一个网站。按照传统的做法,首先,需要安装Apache、MySQL 和PHP以及它们各自运行所依赖的环境;之后分别对它们进行配置(包括创建合适的用户、配置参数等);经过大量的操作后,还需要进行功能测试,看是否工作正常;如果不正常,则意味着更多的时间代价和不可控的风险。可以想象,如果再加上更多的应用,事情会变得更加难以处理。

  更为可怕的是,一旦需要服务器迁移(例如从阿里云迁移到腾讯云),往往需要重新部署和调试。这些琐碎而无趣的“体力活”,极大地降低了工作效率。

  而Docker提供了一种更为聪明的方式,通过容器来打包应用,意味着迁移只需要在新的服务器上启动需要的容器就可以了。这无疑将节约大量的宝贵时间,并降低部署过程出现问题的风险。

  Docker在开发和运维中的优势

  对开发和运维(DevOps)人员来说,可能最梦寐以求的就是一次性地创建或配置,可以在任意环境、任意时间让应用正常地运行。而Docker恰恰是可以实现这一终极目标的瑞士军刀。



具体说来,Docker在开发和运维过程中,具有如下几个方面的优势。

  更快速的交付和部署。使用Docker,开发人员可以使用镜像来快速构建一套标准的开发环境;开发完成之后,测试和运维人员可以直接使用相同环境来部署代码。Docker可以快速创建和删除容器,实现快速迭代,大量节约开发、测试、部署的时间。并且,各个步骤都有明确的配置和操作,整个过程全程可见,使团队更容易理解应用的创建和工作过程。

  更高效的资源利用。Docker容器的运行不需要额外的虚拟化管理程序(Virtual Machine Manager,VMM,以及Hypervisor)支持,它是内核级的虚拟化,可以实现更高的性能,同时对资源的额外需求很低。

  更轻松的迁移和扩展。Docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。 这种兼容性让用户可以在不同平台之间轻松地迁移应用。

  更简单的更新管理。使用Dockerfile,只需要小小的配置修改,就可以替代以往大量的更新工作。并且所有修改都以增量的方式进行分发和更新,从而实现自动化并且高效的容器管理。