为什么在简单的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;
}

使用docker run -p 8080:80 test运行Dockerfile,然后使用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

将容器8080端口绑定到主机的80

docker run -p 80:8080 test

未绑定到主机的端口(即-p 80:80而不是-p 127.0.0.1:80:80(可以从外部访问

绑定限制访问localhost的端口

docker run -p 127.0.0.1:80:8080 test

最新更新