Контейнер Docker недоступен с удаленного компьютера - PullRequest
0 голосов
/ 17 января 2019

Я использую docker и docker-compose для развертывания и запуска моего Java-приложения, работающего на порту 5555.

Я запускаю его как docker-compose -f docker-compose.yml up -d

Но если я запускаю команду telnet вне моего сервера, на котором запущен док-контейнер, я получаю сообщение Connection refused. Если запустить его внутри сервера, все в порядке.

Итак, эти вещи проверены:

$: docker-compose ps

enter image description here

$: статус UFW

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
5555/tcp                   ALLOW       Anywhere
5432                       ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
5555/tcp (v6)              ALLOW       Anywhere (v6)
5432 (v6)                  ALLOW       Anywhere (v6)

докер-compose.yml

version: '3'
services:
  db:
    container_name: db
    image: postgres
    restart: always
    ports:
      - 5432:5432

  auth:
    container_name: auth
    image: registryimg
    restart: always
    stdin_open: true
    tty: true
    ports:
      - 5555:5555

Dockerfile

FROM openjdk:8-jre
ADD target/auth.jar app.jar
EXPOSE 5555
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]

Обновление 1

Из журналов докера моего контейнера я обнаружил, что приложение правильно связывается с нужным портом:

2019-01-18 10:18:11.481 DEBUG 1 --- [ntLoopGroup-2-1] io.netty.handler.logging.LoggingHandler  : [id: 0xaf27337e] REGISTERED
2019-01-18 10:18:11.485 DEBUG 1 --- [ntLoopGroup-2-1] io.netty.handler.logging.LoggingHandler  : [id: 0xaf27337e] BIND: localhost/127.0.0.1:5555
2019-01-18 10:18:11.489 DEBUG 1 --- [ntLoopGroup-2-1] io.netty.handler.logging.LoggingHandler  : [id: 0xaf27337e, L:/127.0.0.1:5555] ACTIVE

Обновление 2

С моего домашнего компьютера я запускаю команду telnet telnet myhost 5555 и получаю сообщение об ошибке:

Trying myhost...
telnet: Unable to connect to remote host: Connection refused

После того, как это сделано, я просматриваю логи контейнеров, и они пусты (нетти не регистрировал никаких соединений).

В противном случае я хочу указать, что если я telnet другой контейнер с potgresql внутри него - все в порядке.

1 Ответ

0 голосов
/ 18 января 2019

Хорошо, быстрый ответ: какой хост вы связываете .

В моем случае netty-сервер был связан следующим образом:

BIND: localhost/127.0.0.1:5555

Я изменил это на:

BIND: 0.0.0.0/0.0.0.0:5555

И это работает как шарм!

...