У меня есть это 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
Почему я получаю эти ошибки?
С помощью Docker вы можете использовать порты контейнеров связывать для размещения портов, используя опцию -p
.
docker run -p HOST_PORT:CONTAINER_PORT
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
docker run -p 127.0.0.1:80:8080 test