2016-03-03 97 views
0

我刚刚遇到了docker,并且正在浏览它的文档以了解如何使用它在多个节点上分发java项目,同时使这个分发平台独立,即节点可以运行任何平台。目前,我正在向不同的节点发送类,并假设这些节点具有与客户端相同的环境,并在其上运行它们。我无法弄清楚如何做到这一点,任何建议将不胜感激。使用docker运行分布式计算

+0

Docker不提供在不同平台上运行项目的能力。 Docket本身只能在Linux上运行。您可以在其他平台上运行它,但您需要虚拟化才能在虚拟机中运行Linux,并在那里运行Docker。 – nstoitsev

回答

0

我做了类似的事情。根据我的愚见,Docker与否不是你最大的问题。但是,使用Docker镜像可以为您节省很多麻烦。

我们有一个构建管道,其中使用Maven构建了一个非常大的Java项目。这是一个单独的大型JAR文件,其中包含我们需要在节点上运行的软件。

但是我们的一些点头也需要运行一些第三方软件,比如Zookeeper和Cassandra。因此,在Maven构建之后,我们使用packer.io创建一个Docker镜像,其中包含所有需要的组件,这些组件最终位于Web服务器上,只能从我们的私有云基础架构内访问。

如果我们想要推出我们的系统,我们使用Python脚本的组合,与OpenStack API对话并在我们的云上创建虚拟机,以及在虚拟机内执行实际软件配置的Puppet。我们的虚拟机是CentOS 7映像,所以Puppet实际上做的是添加Docker yum回购。然后通过yum安装Docker,从我们的存储库服务器中提取Docker镜像,最后使用自定义的bash脚本启动我们的Docker镜像。

对于这些步骤中的每一步,确实有更好的方法来完成它。