nginxinc / NGINX-Demos

NGINX and NGINX Plus demos
Apache License 2.0
1.26k stars 670 forks source link

Docker image nginxdemos/nginx-hello exposes not used port 80 #149

Open RangersMS opened 2 months ago

RangersMS commented 2 months ago

The Docker image nginxdemos/nginx-hello (folder nginx-hello-nonroot) exposes port 80 and 8080 despite this image only providing this service only via port 8080.

This image uses nginx:mainline-alpine as base image. nginx:mainline-alpine exposes port 80. The demo nginx config exposes its service on port 8080 and the Dockerfile exposes 8080. The resulting image exposes both ports 80 and 8080 where no service is listening on port 80.

mathijswesterhof commented 1 month ago

It is indeed true that the non-root variant is based on the same base image as the normal nginx-hello container. My assumption here is that the demo maker wanted to show that even with the default container you can create a rootless system. the open port is not linked to any internal process and should therefor respond with a tcp/IP close. same as any other system port that is not in use. you can also verify this with Nmap or equivalent: image

so, technically this is not a problem, but if this needs improvement. it is possible to adjust the demo. I wrote change i can make into a PR which uses the nginxinc/nginx-unprivileged:mainline-alpine container instead of the nginx:mainline-alpine