无法将docker容器中的nginx转发到localhost 3000

无法将docker容器中的nginx转发到localhost 3000

我目前正在尝试在 Docker 容器中配置 nginx,以便localhost:3000在导航到 时重定向到localhost:8080。来自阅读文档似乎我需要映射端口将请求重定向到容器中的端口 80。但是,当我基于以下 Dockerfile 构建镜像时:

FROM alpine

RUN apk --no-cache add nginx

COPY ./nginx.conf /etc/nginx/nginx.conf

RUN mkdir -p /run/nginx

EXPOSE 80 443

CMD ["nginx", "-g", "daemon off;"]

并使用以下命令运行将端口 8080 映射到端口 80 的容器:

docker run -p 8080:80  nginx-server

当我导航到时,localhost:8080我没有被重定向到 localhost:3000,并且我得到了

localhost didn’t send any data.

经过一番挖掘,我似乎需要更改我的 nginx 配置以指向proxy_pass http://host.docker.internal.但是,这不起作用,当我向 localhost:8080 发出请求时,我什么也没得到。这是我的 nginx 配置:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       127.0.0.1;
        server_name  localhost;

        location / {
            proxy_pass http://host.docker.internal:3000;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

    include servers/*;
}

知道我做错了什么吗?

相关内容