摘自《the first docker book》
-
当软件的开发环境、版本管理、交付和运行都以docker为工具container为基础进行流转时, 就构成了以container为核心的开发和运维流程,软件的架构也因此发生改变(micro service 的架构方式可能会因此流行)。但持续集成、持续部署和自动化运维等生产理念没 有改变,只是增加了container的解决方案,未来必定会有基于docker的平台来管理整个开发和生产流程。
-
容器本身就比较复杂,不易安装,管理和自动化也很困难。而docker就是为改变这一切而生的。
docker是一个能够把开发的应用程序自动部署到容器的开源引擎。
我们能用docker做什么
- 加速本地开发和构建流程,使其更加高效、更加轻量化。本地开发者可以构建、运行并分享docker容器。
-
容器可以在开发环境中构建,然后轻松的提交到测试环境中,并最终进入生产环境。
-
能够让独立服务或应用在不同环境中,得到相同的运行结果。这一点在面向服务的架构和重度依赖微型服务的部署中尤其实用。
- 用docker创建隔离的环境来进行测试。例如,用Jenkins CI这样的持续集成工具启动一个用于测试的容器。
-
docker可以让开发者先在本机上构建一个复杂的程序或架构来进行测试,而不是一开始就在生产环境部署、测试。
-
构建一个多用户的平台服务(PaaS)基础设施
-
为开发、测试提供一个轻量级的独立沙盒环境,或者将独立的沙盒环境用于技术教学,如Unix shell的使用、编程语言教学。
-
提供软件即服务(SaaS)应用程序,如Memcaceh即服务。
- 高性能、超大规模的宿主机部署。