Ответ 1
Вы должны включить :host 0.0.0.0
в команду lein repl
, чтобы разрешить подключения по имени/адресу хоста, кроме 127.0.0.1:
lein repl :headless :host 0.0.0.0 :port 7888
Я пытаюсь подключиться к nREPL из контейнера Docker, в котором запущен другой связанный контейнер Docker на порт 7888. Несмотря на то, что он раскрывает порт с -p 7888
, связывая контейнер с -link <first_container_name>:repl
и используя Docker-injected переменные хоста и порта среды, я получаю "Соединение отказано". ошибка.
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
[email protected]~$ lein repl :connect 172.0.2.1:7888
Почему мне отказывают в моей связи? Я могу подключать другие сервисы, такие как AMQP между контейнерами Docker.
Вы должны включить :host 0.0.0.0
в команду lein repl
, чтобы разрешить подключения по имени/адресу хоста, кроме 127.0.0.1:
lein repl :headless :host 0.0.0.0 :port 7888
Вы можете указать номер порта следующим образом:
lein repl :headless :port 1234
Если вы работаете на Mac, вы, вероятно, находитесь за boot2docker, поэтому эта статья очень помогла. Вот как я подключился к контейнеру:
lein repl :connect $(boot2docker ip):7888
И спасибо: к какому IP я получаю доступ при использовании docker и boot2docker?