Docker 是一个开源应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何的接口。
介绍
是一个开源的应用容器引擎,基于 Go 语言并且遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何的接口,更重要的是容器性能开销低。
应用
Web 应用的自动化打包和发布。
自动化测试和持续集成、发布。
在服务型环境中部署和调整数据库或其它后台应用。
从头编译或扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
优点
简化程序:Docker 让开发者可以打包他们的应用及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker 改变了虚拟化的方式,使开发者可以直接将自己的成果放入 Docker 中进行管理。方便快捷已经是 Docker 最大优势,过去需要用数天乃至数周的任务,在 Docker 容器的处理下,只需数秒就能完成;
避免选择恐惧:如你有选择恐惧症,还是资深患者。Docker 帮打包你的纠结!比如 Docker 的镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可简化部署多种应用实例工作。如 Web 应用、后台应用、数据库的应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署;
节省开支:一方面云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
缺点
增加复杂:随着容器及应用数量的增加,同时也伴随着复杂性的增加在生产环境中管理如此之多的容器是一个极具挑战性的任务,可以使用 Kubernetes 等工具管理有一定规模数量的容器;
原生支持:大多数的容器技术,如 Docker,相比于在原生 Linux 中运行容器,在 Microsoft 环境中运行容器则略显笨拙;
不太成熟:容器技术在市场上是较新的技术,还需要时间来适应市场。开发中的可用资源是有限的,如某个开发者陷入某个问题,可能需要花些时间才能解决问题。
条评论