Docker容器中运行的ActiveMQ控制台无法连接问题求助
问题:Docker部署ActiveMQ后宿主机无法访问控制台
- 执行命令
docker run -p 61613:61613 -p 8161:8161 -it service_test bash启动镜像,进入容器后用activemq console启动ActiveMQ,宿主机通过Chrome访问http://127.0.0.1:8161/时,提示127.0.0.1 didn’t send any data. - 执行命令
docker run --net host -it service_test bash启动镜像,同样启动ActiveMQ后,宿主机Chrome访问http://127.0.0.1:8161/时,提示127.0.0.1 refused to connect.
怀疑是 --net 参数影响了连接,但不确定具体原因,推测可能和端口转发相关。
我的Dockerfile内容
FROM <...>/library/ubuntu:20.04 ADD <proxy certs> RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends software-properties-common && \ update-ca-certificates && \ add-apt-repository -y ppa:deadsnakes/ppa && \ apt-get update && \ apt-get install -y --no-install-recommends \ curl \ git \ python3.8 \ python3.8-venv \ python3.8-dev \ openjdk-11-jdk \ make \ && apt-get clean && \ rm -rf /var/lib/apt/lists/* WORKDIR /opt RUN <point pip to certs> RUN echo "timeout = 300" >> /etc/pip.conf RUN curl -O https://bootstrap.pypa.io/get-pip.py && \ python3.8 get-pip.py # Run python in a venv ENV VIRTUAL_ENV=/opt/venv RUN python3.8 -m venv $VIRTUAL_ENV ENV PATH="$VIRTUAL_ENV/bin:$PATH" # Update pip before continuing RUN pip install --upgrade pip # Get wheel RUN pip install wheel # add extra index url RUN echo "extra-index-url = <url>" >> /etc/pip.conf # Install ActiveMQ ENV JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64" ENV PATH="$JAVA_HOME/bin:$PATH" RUN mkdir -p /opt/amq RUN curl -kL \ http://archive.apache.org/dist/activemq/5.16.3/apache-activemq-5.16.3-bin.tar.gz \ >> /opt/amq/apache-activemq-5.16.3-bin.tar.gz && \ tar -xzf /opt/amq/apache-activemq-5.16.3-bin.tar.gz --directory /opt/amq ENV PATH="/opt/amq/apache-activemq-5.16.3/bin:$PATH" # Expose ports 61613 and 8161 to other containers EXPOSE 61613 EXPOSE 8161 COPY <package>.whl <package>.whl RUN pip install <package>
注:部分敏感信息已移除,所有被<>包裹的内容已隐藏。
补充说明:我在容器内使用 activemq console 启动ActiveMQ,尝试从宿主机操作系统通过Google Chrome进行连接。
内容的提问来源于stack exchange,提问作者Aidan Tweedy
相关产品推荐
相关产品推荐

