Постановка задачи
Я бегу API Настой на основе в контейнере Докер, который подвергается воздействию на порт 5000, однако никаких запросов даже получение к API.Docker Разоблачение порты для Колба API
Для воспроизведения
- Get jupyter/все-искровым ноутбук докер изображения
- Внутри контейнера Докер, получить любую Настой на основе API, для целей воспроизводимости попробовать https://github.com/miguelgrinberg/oreilly-flask-apis-video (для понимания очень простой API на основе Python для версии v0.1 в версиях)
- Запустите Docker, используя стандартную команду, как описано здесь (https://github.com/jupyter/docker-stacks/tree/master/all-spark-notebook). Забудьте о части ноутбука и используйте только
-p 5000:5000
, чтобы получить предпочтительный порт API для запуска. Не используйте HTTPS, но установите ssh на контейнер. (Таким образом, если вы используете пользовательские Dockerfile как я, вам не нужно будет активировать Судо) - Попробуйте сделать любой запрос к API (например,
http GET http://localhost:5000/customers/1
) ->это не удается и получает различные сообщения об ошибках в зависимости- ли это
Python based urlib request (IOError: ('http protocol error', 0, 'got a bad status line', None))
- или HTTPie основы (
http: error: ConnectionError: HTTPConnectionPool(host='localhost', port=5000): Max retries exceeded with url: /filterReplies/aaaaa/aaaa (Caused by <class 'http.client.RemoteDisconnected'>: Remote end closed connection without response)
)
- ли это
- Проверьте журналы, где нет записи любого запроса API
- Я бегу на Linux машине, нет VM необходимо.
- Существует разница в создании
wget http://localhost:5000
(получаетConnecting to localhost (localhost)|127.0.0.1|:5000... connected. HTTP request sent, awaiting response... No data received. Retrying.
) иwget http://localhost:1234
(получаетResolving localhost (localhost)... 127.0.0.1 Connecting to localhost (localhost)|127.0.0.1|:8888... failed: Connection refused.
), так что порт открыт на каком-то уровне, но только не там, кажется, что-то ждет на другой стороне? - Оригинальная цель изображения все еще работает - т. Е. если я укажу как портов, подлежащих пересылке, я все же могу иметь доступ к браузеру Jupyter на базе браузера в контейнере докера. Так некоторые порт пересылки на этой машине работает.
Можете ли вы связать свое приложение в 0.0.0.0 вместо localhost? Хотя я не уверен. – ipinak
Просто для того, чтобы быть очень конкретным: я выполнил ту же команду, за исключением теперь с '-p 0.0.0.0: 5000: 5000' вместо обычного' -p 5000: 5000', добавляющего IP до второго производителя числа ошибок 'sr/data custom-docker python3/home/jovyan/work/flask_api/run.py docker: Неверный IP-адрес: 5000. '__Но так же, как я пишу это, я понимаю, что это не то, что вы имели в виду .__ Будет модифицировать API. –