87.jpg?x-oss-process=image/auto-orient,1/quality,q_90/watermark,image_bG9nby5wbmc_eC1vc3MtcHJvY2Vzcz1pbWFnZS9yZXNpemUsUF8yMA,g_center,t_50,x_10,y_10

Docker是一个开源应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何的接口。

介绍

是一个开源的应用容器引擎,基于Go语言并且遵从Apache2.0协议开源。

Docker可以让开发者打包他们的应用以及依赖包到一个轻量级可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何的接口,更重要的是容器性能开销低。

应用

Web应用的自动化打包和发布。

自动化测试和持续集成、发布。

在服务型环境中部署和调整数据库或其它后台应用。

从头编译或扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

优点

  1. 简化程序:Docker让开发者可以打包他们的应用及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是Docker最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需数秒就能完成;

  2. 避免选择恐惧:如你有选择恐惧症,还是资深患者。Docker帮打包你的纠结!比如Docker的镜像;Docker镜像中包含了运行环境和配置,所以Docker可简化部署多种应用实例工作。如Web应用、后台应用、数据库的应用、大数据应用比如Hadoop集群、消息队列等等都可以打包成一个镜像部署;

  3. 节省开支:一方面云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker改变高性能必然高价格的思维定势。Docker与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

缺点

  1. 增加复杂:随着容器及应用数量的增加,同时也伴随着复杂性的增加在生产环境中管理如此之多的容器是一个极具挑战性的任务,可以使用Kubernetes等工具管理有一定规模数量的容器;

  2. 原生支持:大多数的容器技术,如Docker,相比于在原生Linux中运行容器,在Microsoft环境中运行容器则略显笨拙;

  3. 不太成熟:容器技术在市场上是较新的技术,还需要时间来适应市场。开发中的可用资源是有限的,如某个开发者陷入某个问题,可能需要花些时间才能解决问题。


 评论