【发布时间】:2018-07-28 03:59:01
【问题描述】:
我使用 sbt 和 Akka 编写了一个 mqqt 代理。我在本地机器上运行良好,但是当我在 docker 容器中运行代码时无法连接到代理。我看到代理在端口 1883 上运行良好。 Docker 日志:-
[DEBUG] [02/17/2018 04:24:29.682] [run-main-0] [EventStream(akka://TcpServer)] Default Loggers started
[DEBUG] [02/17/2018 04:24:29.853] [TcpServer-akka.actor.default-dispatcher-4] [akka://TcpServer/system/IO-TCP/selectors/$a/0] Successfully bound to /127.0.0.1:1883
[INFO] [02/17/2018 04:24:29.860] [TcpServer-akka.actor.default-dispatcher-4] [akka://TcpServer/user/tcp] listening on port 1883
我的 dockerfile:-
FROM openjdk:8
ENV SBT_VERSION 0.13.16
RUN curl -L -o sbt-$SBT_VERSION.deb http://dl.bintray.com/sbt/debian/sbt-$SBT_VERSION.deb && dpkg -i sbt-$SBT_VERSION.deb && rm sbt-$SBT_VERSION.deb && apt-get update && apt-get install sbt && sbt sbtVersion
WORKDIR /app
ADD . /app
EXPOSE 1883
CMD sbt run
Docker 运行命令
docker run -v "$HOME/.ivy2":/root/.ivy2 -p 1883:1883 messanger:v1
docker 容器 ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6a0a6aee317f messanger:v1 "/bin/sh -c 'sbt run'" 6 hours ago Up 6 hours 0.0.0.0:1883->1883/tcp epic_goldberg
我可以通过登录到 docker 机器而不是从我的本地机器连接到代理。在docker中运行mqtt客户端日志
root@e14df5e36def:/# python mqtt_subscriber.py
Connected with result code 0
<paho.mqtt.client.Client object at 0x7fe5a66cb510> None 1
【问题讨论】: