Контейнер Docker недоступен с других машин в сети хоста - PullRequest
0 голосов
/ 23 мая 2019

Я делал некоторые devops и писал сценарий, чтобы превратить мою текущую настройку host / nginx server / nginx в настройку host / docker / nginx server / docker / nginx, чтобы я мог сохранять каталоги и т. Д. Между ними.

Проблема в том, что любые порты, которые я открываю в контейнере докера, доступны только на хосте, а не на других машинах в сети хоста.

При вводе 192.168.0.2 с компьютера, такого как 192.168.0.3, он просто говорит, что ответ слишком длинный, но ввод 192.168.0.2 из 192.168.0.2 вызовет страницу приветствия nginx ?! Интересно, что я провел анализ wireshark на en0 на порте 80, и на самом деле некоторые пакеты проходят через

См. Вставки проверок пакетов: LAN для докера: https://pastebin.com/4qR2d1GV Хост для докера: https://pastebin.com/Wbng9nDB

Я пытался использовать docker run -p 80:80 nginx/nginx и docker run -p 192.168.0.2:80:80 nginx/nginx и docker run -p 127.0.0.1:80:80 nginx/nginx, но это, похоже, ничего не исправляет.

При подключении с 192.168.0.3 к 192.168.0.2 должно отображаться приветствие nginx.

это в моей среде разработки, которая является системой OSX 10.13.5.

когда я отправляю это на свой сервер Ubuntu 16.04, он прекрасно работает с контейнером nginx, доступным с www, и когда я запускаю ngnix на своем хосте без докера, я могу подключиться и с внешних машин в сети

1 Ответ

0 голосов
/ 23 мая 2019

Ваше описание немного сбивает с толку 127.0.0.1 в строке порта, связывает его только с localhost - вы не сможете получить доступ к докеру с другого компьютера.Удалите IP-адрес, и вы сможете получить доступ к докеру извне localhost.

...