在 docker 容器中运行的 MarkLogic 中安装 Data Hub Central warfile 时,端口 8013 不可用

问题描述

我的docker配置需要映射端口供外部访问,但是在尝试安装data hub中央war文件时,mlDeploymlRedeploy遇到问题,端口不可用:

Task :mlDeployApp
Creating custom rewriters for staging and job app servers
Loading REST options for staging server
Initializing ExecutorService
Loading default query options from file default.xml
Shutting down ExecutorService
Loading REST options for jobs server
Initializing ExecutorService
Loading traces query options from file traces.xml
Shutting down ExecutorService

Writing traces query options to MarkLogic; port: 8013
Error occurred while loading modules; host: localhost; port: 8013;
 cause: java.net.ConnectException: Failed to connect to localhost/127.0.0.1:8013

...

  • 出了什么问题: 任务“:mlDeployApp”执行失败。

加载REST模块时出错:加载模块时出错;主机:本地主机;端口:8013;原因:java.net.ConnectException:无法连接到 localhost/127.0.0.1:8013

Docker 文件内容

从 store/marklogicdb/marklogic-server:10.0-7-dev-centos 工作目录 /tmp 暴露 7997-8040 曝光 8080 曝光 9000 CMD /etc/init.d/MarkLogic start && tail -f /dev/null

原始 docker run 命令:

docker run -d --name=marklogic10.0-7_local -p 7997-8040:7997-8040 -p 8080:8080 -p 9000:9000 marklogic-initial-install:10.0-7-dev-centos>

修改后的 docker run 命令:

docker run -d --name=marklogic10.0-7_local -p 7997-8012:7997-8012 -p 8014-8040:8014-8040 -p 8043:8013 -p 8090:8080 -p 90000:9 -initial-install:10.0-7-dev-centos

注意:我最初在端口 8080 上遇到了同样的问题,但将其映射到端口 8090 从而解决了该问题。对端口 8013 执行相同操作无效。

解决方法

问题在于安装步骤而不是端口。