2017-01-17 5 views
0

Я создал изображение докера, которое запускает kafka внутри контейнера. Я также сделал сопоставления портов в файле docker-compose.yml для сопоставления портов хоста с портами контейнеров.Docker не может подключиться через хост IP или localhost

После того, как в результате чего вверх DOCKER изображение (с использованием DOCKER-Compose), я в состоянии видеть, что Докер изображение и работает, и контейнер также запускается, как показано ниже:

e39cd6452307  dockerregistry:5000/confluent:latest "/run.sh"    10 hours ago  Up 10 hours   0.0.0.0:8081->8081/tcp, 0.0.0.0:2108->2181/tcp, 0.0.0.0:9920->9092/tcp confluent 

«PS- ef | Grep Докер»также предоставляет мне следующий результат:

root  6594 5257 0 Jan17 ?  00:00:00 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9920 -container-ip 172.17.0.1 -container-port 9092 
root  6605 5257 0 Jan17 ?  00:00:00 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8081 -container-ip 172.17.0.1 -container-port 8081 
root  6617 5257 0 Jan17 ?  00:04:22 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 2108 -container-ip 172.17.0.1 -container-port 2181 

Weird вещь начинается здесь:

Если я пытаюсь подключиться к услуге работает внутри контейнера с моей хост-машине с помощью контейнера IP и порт (IP: 172.17.0.1, порт: 2181), моя связь успешна, и я получаю правильный ответ.

Однако, если я пытаюсь подключиться к сервису с хост-машины, используя сопоставленный IP-адрес и порт (используя 10.xx.xx.xx: 2108), я получаю сообщение об отказе от соединения. (xx используется только для маскировки моей машины ip)

Кроме того, «telnet 10.xx.xx.xx 2108» отлично работает.

В чем может быть проблема в этом случае. У меня есть версия докеров версии 1.7.1 и версия для докеров 1.5.0

Пожалуйста, помогите.

+0

какой ОС вы используете? –

+0

Это очень старая версия Docker, которую вы считаете обновлением? – BMitch

ответ

1

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

докер-компоновать

файл, может быть порт отображение не сделано там должным образом.

Не могли бы вы загрузить свою докер-композицию, потому что единственная проблема связана с портом, поскольку он не отображается должным образом. Также вы можете проверить в вашем докер выполнения команду, если

-p порт: порт

фактически порт, который вы хотите выставить или нет.

0

У меня была такая же проблема, и я смог исправить ее, указав хост, который использует сервер в контейнере. См. Мой ответ здесь: Access Docker forwarded port on Mac