我刚刚遇到了docker,正在查看其文档以了解如何使用它来跨多个节点分发java项目,同时使这个分发平台独立,即节点可以运行任何平台。目前我正在将类发送到不同的节点并在它们上运行,假设这些节点与客户端具有相同的环境。我无法弄清楚如何做到这一点,任何建议都会非常感激。
答案 0 :(得分:0)
我做了类似的事情。在我的拙见中,Docker与否并不是你最大的问题。但是,为此目的使用Docker镜像可以并且将为您节省很多麻烦。
我们有一个构建管道,其中使用Maven构建了一个非常大的Java项目。结果是一个大型JAR文件,其中包含我们需要在节点上运行的软件。
但我们的一些点头也需要运行一些第三方软件,如Zookeeper和Cassandra。因此,在Maven构建之后,我们使用packer.io创建一个Docker镜像,其中包含所有需要的组件,这些组件最终只能在我们的私有云基础架构中访问的Web服务器上。
如果我们要推出我们的系统,我们使用与OpenStack API交互并在我们的云上创建虚拟机的Python脚本组合,以及在VM内部执行实际软件供应的Puppet。我们的虚拟机是CentOS 7映像,所以Puppet实际上做的是添加Docker yum repos。然后通过yum安装Docker,从我们的存储库服务器中提取Docker镜像,最后使用自定义bash脚本启动我们的Docker镜像。
对于每个步骤,肯定有更优雅的方法。