首页 > 解决方案 > docker容器内的Nginx没有响应

问题描述

我的 Dockerfile 是:

FROM nginx

我在 AWS 上启动一个容器docker run -d --name ng_ex -p 8082:80 nginx并:

$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
6489cbb430b9        nginx               "nginx -g 'daemon of…"   22 minutes ago      Up 22 minutes       0.0.0.0:8082->80/tcp   ng_ex

在容器内:

service nginx status
[ ok ] nginx is running.

但是当我尝试在浏览器上发送请求时,my.ip.address:8082我得到一个超时错误,而不是 Nginx 欢迎页面。我的错误是什么以及如何解决?

标签: amazon-web-servicesdockernginx

解决方案


  1. 如果您在 aws 上的 VM 上,则意味着您必须设置安全组以允许从所有 Internet 或仅您的 IP/proxyIP 在端口 8082 上连接。(超时可能来自于此)。

然后my.ip.address:8082应该工作

  1. 如果您在 VM 中,请获取容器 IP:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id.

然后 curl <容器IP>:8082

  1. 如果仍然无法工作,请确认构建您的容器EXPOSE 80

推荐阅读