在Docker中安装MarkLogic的2节点集群

时间:2019-12-09 13:37:36

标签: docker marklogic

我想在docker中安装MarkLogic并形成集群,即在同一台机器上运行的两个或更多ML节点实例。如何实现?

1 个答案:

答案 0 :(得分:2)

Building a MarkLogic Docker Container博客条目中,它描述了如何创建和初始化运行MarkLogic的Docker映像。

在文章底部附近,它描述了如何使用--link开关和docker-compose链接多个容器,以协助管理Docker容器集群:

链接容器

  

您是告诉Docker容器应该如何通信的人!使用docker run命令时,您还可以传递--link标志。

     

请考虑以下示例:

docker run -d --name=marklogic1 --hostname=marklogic1.local -p 8000-8002:8000-8002 marklogic:8.05-preinitialized

docker run -d --name=marklogic2 --hostname=marklogic2.local --link marklogic1:marklogic1 -p 18000-18002:8000-8002 marklogic:8.05-preinitialized
  

上面创建了两个MarkLogic容器。第二个具有--link标志。 Docker网络设置环境变量以及每个要链接的容器以及链接容器内的 / etc / hosts 文件。这设置了Docker容器通过内部Docker网络进行通信的能力。 --hostname标志用于与MarkLogic保持一致,MarkLogic在与集群中的其他MarkLogic服务器联系时使用完整域名。因此,我们只需将.local域添加到容器的名称。

     

最后,请注意第二个容器上的-p标志将MarkLogic的端口从8000到8002暴露给主机的端口18000到18002。为什么不使用主机的8000到8002的端口呢?因为第一个容器已经在使用它们。记住,Docker与主机共享网络!但是,当然,您可以在主机上选择任意范围的开放端口来映射容器的MarkLogic端口。

     

现在,只需将浏览器指向第一个容器(marklogic1)中的端口8001,然后完成安装后的步骤。跳过加入集群。完成后,将浏览器指向第二个容器(marklogic2)的端口18001,然后执行安装后的步骤。当要求加入集群时,只需使用主机名localhost并将端口号保留为8001。第二个容器中的MarkLogic将与第一个容器中的MarkLogic联系。将更新配置,使marklogic2与marklogic1加入集群。创建并添加第三个MarkLogic容器,并将其链接到marklogic1:marklogic1和marklogic2:marklogic2,您将很快拥有一个适当的3节点MarkLogic集群!

使用docker-compose

  

Docker创建了另一个工具来帮助管理Docker容器集群。 docker-compose具有创建多个容器并将它们联网的命令。然后,您可以使用docker-compose命令创建,启动和停止它们。 Docker使用名为Dockerfile的文件来构建容器。 docker-compose使用名为docker-compose.yml的文件来构建容器网络。

docker-compose作为separate download可用。