Я пытаюсь подключить скрипт на хосте Docker к сценарию в контейнере Docker.Проблема подключения к контейнеру Docker
Сценарии используют удаленный диспетчер очереди Python, и они отлично работают вне Docker, поэтому я уверен, что проблема связана с моей конфигурацией Docker или с моим пониманием пересылки портов Docker.
Сценарий на контейнере правильно связывается с (localhost, 5800), и я проверил, что скрипт не сбой.
Я попытался подключить сценарий к IP-адресу контейнера на порту 5800, и это не работает (соединение отклонено). Я также попытался использовать флаг -p и переадресацию 5800 на случайный порт, а затем подключиться к (localhost, randomport) с хоста Docker, и это тоже не работает (соединение отклонено).
Снова скрипт определенно работает, так как проблема возникает, даже когда я получаю оболочку на контейнере и запускаю скрипт вручную, гарантируя, что он успешно запускает сервер и не закрывает его.
Для меня это похоже на ту же проблему, что и работа с веб-сервером в контейнере Docker. Почему это не работает? Скрипты работают за пределами Docker просто отлично.
https://github.com/hashme/thistle/tree/flask_thistle
(см room.py для контейнера сценария и app.py для хоста сценария, я не бегу сценарии точно, но рубил в REPL, так что я регулировать многие параметры без успеха)
Чтобы воспроизвести проблему, сначала запустите ./container.sh, затем (в REPL) импортируйте приложение и создайте MessagePasser с некоторым IP-адресом и номером порта. Запуск сценария app.py ничего не делает.
Ах! Это моя первая ошибка. Позвольте мне понять, исправляет ли это это. – Shariq
Это не полностью устранило мою проблему: я все равно получаю сообщение «Connection failed» с правильной привязкой скрипта к («0.0.0.0», 5800) при попытке подключиться к нему с хоста Docker, используя как его IP, так и localhost с правильным портом. Любые другие идеи? – Shariq
Затем проверьте, правильно ли вы показываете и публикуете этот порт. Тем не менее, этот вид удаленного устранения неполадок с помощью stackoverflow является утомительным. Вы должны сделать что-то вроде 20 вещей совершенно правильно или вообще не работает, и у нас нет доступа к вашей системе, чтобы проверять вещи удаленно, поэтому это не так хорошо работает в stackoverflow. –