Я делал некоторые 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 на своем хосте без докера, я могу подключиться и с внешних машин в сети