在过来的几年中,"云"作为明星热词站在了各种新潮技术之中,你可能应用过,但说不清它的原理;或者是没用过,但听过它的小名;也可能连它的名字都没听过,但你对这只蓝色鲸鱼肯定非常眼生。作为一名技术人员,只有你在这个软件行业里摸爬滚打,就肯定对他有不同水平的理解。

Docker是什么?

Docker的LOGO非常有特点,一条鲸鱼载着很多集装箱,集装箱中满是要交付的货物。鲸鱼就是操作系统,而集装箱就是Docker,集装箱中的就是要交付的货物,也就是应用程序。各种"货物"之间的尺寸、大小、形态是各不相同的,都要放到鲸鱼身上,那么就要思考各种货物怎么安放,还得思考货物之间是否重叠起来。于是就有了集装箱的概念,将每件货物都放到集装箱中,这样鲸鱼就能够有程序的安放,省时省力。

那么就能够了解为:打包好的软件放到容器中,容器再放到操作系统中,就是简略的"build——ship——run",这样就能够保障在本人电脑上怎么运行,在服务器上也是怎么运行,大大减少因为环境起因出错而导致程序运行谬误,开发须要破费大量的精力去折腾环境。

Docker作为一个软件集装箱化平台,能够让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,将镜像打包后上传到仓库,就能够公布利用到任意平台中。在应用时,只用一条命令就能够将镜像拉取到本地,而后一条命令就能够疾速的将我的项目部署起来。这也完满的诠释了Docker的三大外围:镜像,容器,仓库。

那么,首先咱们要来理解一下 Docker 的劣势:

1.快

运行时的性能能够获取极大晋升(经典的案例是晋升97%)。

治理操作(启动,进行,开始,重启等等) 都是以秒或毫秒为单位的。

  1. 麻利

像虚拟机一样麻利,老本更低,部署形式简略。

  1. 灵便

将利用和零碎"容器化",不增加额定的操作系统。

  1. 轻量

你会领有足够的"操作系统",仅需增加或减小镜像即可。在一台服务器上能够布署100~1000个Containers容器。

5.便宜

开源的,收费的,低成本的。由古代Linux内核反对并驱动。注* 轻量的Container必然能够在一个物理机上开启更多"容器",注定比VMs要便宜。

  1. 云反对

云服务提供创立和治理Linux容器框架。

在之前的文章,咱们也系统地介绍过Docker,感兴趣的同学能够戳:

第一章:Docker与k8s的恩怨情仇(一)—成为PaaS前浪的Cloud Foundry

第二章:Docker与k8s的恩怨情仇(二)—用最简略的技术实现"容器"

第三章:Docker与k8s的恩怨情仇(三)—后浪Docker来势汹汹

第四章:Docker与k8s的恩怨情仇(四)-云原生时代的闭源闭幕

第五章:Docker与k8s的恩怨情仇(五)——Kubernetes的翻新

第六章:Docker与k8s的恩怨情仇(六)—— "容器编排"演出"终结者"大片

第七章:Docker与k8s的恩怨情仇(七)—— "服务发现"大法让你的内外交互原地腾飞

第八章:Docker与k8s的恩怨情仇(八)——蓦然回首总览Kubernetes

Docker利用部署BI数据分析

通过下面一系列的介绍,咱们能够从倒退背景到具体原理和应用理解Docker。接下来咱们将从BI数据分析利用为例,为大家介绍如何实现Docker应用程序部署。

首先咱们从BI数据可视化剖析说起。通过对目前国内市面上多个BI利用进行调研后发现这些利用都存在一些问题。

  1. 依赖于运行环境 JDK,JAR,.NET Core等,若运行环境不统一也会导致各种问题呈现。
  2. 装置简单。对于非专业人员,部署一套零碎须要投入很大精力。
  3. 过于依赖于操作系统。例如会存在x32位不可反对,win7环境配置难度大,winserver2008以前版本不反对等各种零碎问题。
  4. PC装置有各类应用软件,容易和已装置软件抵触,引发不可预知的异样问题。
  5. PC装置各种杀毒软件,如360、金山毒霸、电脑管家等一些杀毒软件,会将过程杀掉,引起一些BI服务无奈失常运行。
  6. BI产品广泛有很多运行打算工作,集体PC装置BI利用后,即便不关上软件,程序仍然在跑,容易引起PC运行比拟卡顿。

上述问题的存在,就让 Docker 能够很好凸显他的价值。

首先Docker中的容器是与其余容器互相隔离的,在所获取的镜像中蕴含了Docker运行所须要的全副依赖的运行环境;所以只须要简略两行代码,就能够装置一个残缺的BI利用。咱们以Wyn Enterprise的部署为例,给大家演示下Docker进行软件部署的具体过程。

示例步骤:

  1. 装置Docker
  2. 获取镜像:
sudo docker pull grapecitycn/wyn-enterprise
  1. 创立并运行docker容器:
sudo docker run --name wyn -p 51980:51980 -d grapecitycn/wyn-enterprise
  1. 至此,咱们就能够通过 http://{server\_ip\_address}:51980 来拜访Wyn

通过以上示例,咱们能够看到,仅需简略的3个命令行,就疾速实现了BI零碎的部署。请问,还有什么比Docker更简略快捷的部署形式吗?

Docker镜像打包

部署如此简略,那么如果要进行移植该如何做,集成的我的项目如何公布Docker仓库中呢?

接下来,咱们通过一个案例零碎的解镜像打包过程,为大家解答这两个问题。

事件的起因是客户找到葡萄,示意心愿将BI软件打包到本人利用零碎中,在实现OEM白标解决后,做一些个性化配置后,从新打包镜像,上传到Docker仓库中。

说做就做,咱们当初就开始我的项目。

  1. 首先,应用 Wyn Enterprise 提供的 Docker 镜像来创立一个本人的 Docker 容器
sudo docker pull grapecitycn/wyn-enterprisesudo docker run --name wyn -p 51980:51980 -d grapecitycn/wyn-enterprise

通过:http://{server\_ip\_address}:51980进行个性化操作配置。

  1. 按本人的要求进行系统配置

能够依据本人的须要来对系统进行配置,比方替换登录页面的背景图片和LOGO,零碎左上角显示的LOGO,以及替换浏览器tag页下面显示的LOGO;还能够依据本人的须要创立一些示例文档。

  1. 用 admin 登录到零碎后,导出你须要的文档以及配置。
  2. 制作 Docker 镜像
    4.1. 筹备一台Linux机器,把文件夹custom-wyn拷贝到这台机器下面去;
    4.2. 把步骤3中导出的压缩文件重命名为sample\_files.zip,并拷贝到目录custom-wyn/sample\_files;
    4.3. 如果须要在自定义的Docker镜像中内置字体,请把筹备好的字体文件拷贝到目录custom-wyn/custom\_fonts下;
    4.4. 依据本人的须要,批改dockerfile文件中docker镜像wyn-enterprise的tag名称;
    4.5. 参照脚本文件push-docker-image.sh中的内容,制作并且上传Docker镜像到Docker仓库中。
    4.6. 打包资源

从该地址下载即可:

https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=139206

4.7. 拉取Docker镜像进行验证

拉取下面步骤中创立好的Docker镜像,并应用该镜像创立一个docker容器。

拜访该docker容器中运行的Wyn Enterprise利用并进行验证。

至此咱们的Docker镜像都曾经制作实现。

总结

这里咱们零碎为大家介绍了Docker利用的劣势,以及整个BI我的项目在docker中部署的全过程。其中Docker镜像打包也是目前很多企业中比拟喜爱的一个性能,通过简略的操作BI集成到本人的利用零碎中一起打包,完满的解决了嵌入交融的问题。

目前越来越多开发者曾经投入到Docker的队伍中,同时随着技术更新迭代,BI也在不断进步,当初WynEnterprise曾经反对K8S集群部署。接下来,将继续为大家分享数据集成,数据分析,集群部署等内容。