в docker, tips

Docker совет №28: Как исправить ошибку ‘Connection Reset by Peer’


Вы наверняка видели эту ошибку, когда пытались подключиться к web-серверу, запущенному в docker-контейнере. К слову, отсутствие ответа от web-сервера — тоже довольно распространенная ошибка. Давайте разберемся!

В зависимости от того, какой инструмент вы используете (curl, http, браузер) полученные ошибки могут отличаться, но результат будет тот же — ваш web-сервер не вернет вам ожидаемую страницу.

Возможно, вы даже попытались устранить эту ошибку: например, установили curl внутри docker-контейнера и запустили

curl localhost:3000 

(или любой другой порт, на котором работает web-сервер) — и все отработало как ожидалось.

Если так и произошло — с большой долей вероятности это связано с тем, что в настройках вашего web-сервера есть привязка к localhost, то есть, что он будет доступен только внутри вашего контейнера.

Для устранения данной проблемы разрешите своему web-серверу слушать на всех доступных сетевых интерфейсах (проще говоря, вместо localhost укажите 0.0.0.0). Практически всегда это то, что нужно сделать если вы хотите предоставить публичный доступ к вашему web-приложению.

Да, и конечно же, не забудьте о пробросе портов (-p 3000:3000) при запуске вашего docker-контейнера, если к нему нужен доступ снаружи.

Добавить комментарий

  1. Вот только вчера голову ломал над этим — почему приложение запущенное в контейнере не отдает curl’ом страничку и ругается такой же ошибкой, но stackoverflow подсказал 🙂