Почему ошибка Connection Refused в простой конфигурации Docker + nginx?

У меня есть это Dockerfile:

FROM nginx:latest
COPY devops/nginx_proxy.conf /etc/nginx/conf.d/default.conf
EXPOSE 8080

и devops/nginx_proxy.conf:

server {
  listen 8080;
  client_max_body_size        32M;
  underscores_in_headers      on;
}

Запустив Dockerfile с помощью docker run -p 8080:80 test, а затем протестировав с помощью curl http://localhost/, я вижу эту ошибку:

curl: (7) Failed to connect to localhost port 80: Connection refused

Еще более любопытно, что curl http://localhost:8080/ возвращает это:

curl: (52) Empty reply from server

Почему я получаю эти ошибки?

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
13
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

С помощью Docker вы можете использовать порты контейнеров связывать для размещения портов, используя опцию -p.

Главное правило

docker run -p HOST_PORT:CONTAINER_PORT

Привязать порт контейнера 8080 к 80 хосту

docker run -p 80:8080 test

Ports which are not bound to the host (i.e., -p 80:80 instead of -p 127.0.0.1:80:80) are accessible from the outside

Привязать порт, ограничивающий доступ к localhost

docker run -p 127.0.0.1:80:8080 test

Другие вопросы по теме