12

我正在尝试从 Docker 容器连接到 nREPL,该容器在端口 7888 上运行另一个链接的 Docker 容器。尽管使用 暴露端口-p 7888,使用 Docker 注入的环境主机和端口变量链接容器-link <first_container_name>:repl,我得到了“连接被拒绝”。错误。

这是我运行第一个容器的方式:

docker run -i -t -p 7888 clojure-image lein repl :headless :port 7888
~$ nREPL server started on port 55555 on host 127.0.0.1

第二个容器:

docker run -i -t -link <first_container_name>:repl clojure-image /bin/bash
username@hostname~$ lein repl :connect 172.0.2.1:7888

为什么我的连接被拒绝?我能够在 Docker 容器之间连接其他服务,例如 AMQP。

4

3 回答 3

18

您必须:host 0.0.0.0lein repl命令中包含以允许在 127.0.0.1 以外的主机名/地址上进行连接:

lein repl :headless :host 0.0.0.0 :port 7888
于 2014-03-15T10:53:34.300 回答
4

您可以按如下方式包含端口号:

lein repl :headless :port 1234
于 2015-02-09T20:50:57.313 回答
2

如果你在 Mac 上运行,你可能落后于 boot2docker,所以这篇文章很有帮助。这是我连接到容器的方式:

lein repl :connect $(boot2docker ip):7888

并且感谢:使用 docker 和 boot2docker 时我可以访问什么 IP?

于 2015-01-13T21:03:47.007 回答