【问题标题】:Not able to access admin console for an activemq instance running in a docker container无法访问在 docker 容器中运行的 activemq 实例的管理控制台
【发布时间】:2020-07-28 05:00:22
【问题描述】:

我已经创建了 dockerfile。

FROM ubuntu:latest

RUN apt-get update && apt-get -y upgrade
RUN apt-get -y install curl
RUN apt-get -y install default-jre

RUN curl -O http://archive.apache.org/dist/activemq/5.16.0/apache-activemq-5.16.0-bin.tar.gz
RUN mkdir -p /opt/apache/activemq
RUN tar xvzf apache-activemq-5.16.0-bin.tar.gz -C /opt/apache/activemq

WORKDIR /opt/apache/activemq/apache-activemq-5.16.0/bin
VOLUME /opt/apache/activemq/apache-activemq-5.16.0/conf

RUN echo './activemq start && tail -f /opt/apache/activemq/apache-activemq-5.16.0/data/activemq.log' > start.sh

# Admin interface
EXPOSE 8161
# Active MQ's default port (Listen port)
EXPOSE 61616

CMD ["/bin/bash", "./start.sh"]

我创建了一个这样的 docker 容器

docker run --name activemq -p 8161:8161 -p 61616:61616 temp-activemq:5.16.0

我尝试按如下方式运行管理控制台

http:://localhost:8161/admin/
http://<IP of the Container>:8161/admin/

它们都不起作用

在容器之外,我安装了 activeMQ 并尝试运行管理控制台,它工作正常。谁能帮我指点一下如何进行排序?

我用

解决了上述问题
docker run --rm -d --network host --name activemq temp-activemq:5.16.0

但是,我仍在研究为什么端口转发不起作用?

【问题讨论】:

  • 启动时记录了什么?它应该说它将管理界面暴露给一个 IP 地址。 http:://0.0.0.0:8161 可能值得检查,jetty.xmljettyPort 部分中具有正确的绑定。

标签: docker activemq


【解决方案1】:

我遇到了同样的问题。在 AMQ 5.16.0 中,他们更新了 web UI 的 jetty.xml 以使用 127.0.0.1 而不是 0.0.0.0!

我通过更新 jetty.xml 修复了它

在jetty.xml中的“org.apache.activemq.web.WebConsolePort”下更新 -->

property name="host" value="127.0.0.1"

property name="host" value="0.0.0.0"

你需要在你的 docker 镜像中复制并覆盖这个文件,它应该可以工作。

【讨论】:

  • 您还可以提及在 Dockerfile 中添加命令 RUN sed -i "s|127.0.0.1|0.0.0.0|g" $ACTIVEMQ_HOME/conf/jetty.xml,该命令可以完成这项工作,并且 AMQ 可从容器外部使用。
猜你喜欢
  • 2018-10-25
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
  • 1970-01-01
  • 2019-10-21
  • 2019-12-15
相关资源
最近更新 更多