Kam
Kam

Reputation: 6008

Can't access port 8080 on AWS EC2

I just started a new AWS EC2 instance. In the instance's security group I added a new rule to open port 8080 as well as port 80.

I created a docker image and container that runs an apache server as per the aws tutorial.

When I run docker run -p 80:80 hello-world (where hello-world is the apache container image), everything works fine and I can access the server from the public network (using a web browser, or a curl command).

However, when I run docker run -p 8080:80 hello-world and I try to send a GET request (web browser, or curl) I get a connection timeout.

If I login to the host that is running the docker container, the curl command works fine. This tells me that port 8080 isn't really open to the public network, and something is blocking it, what could that be?

Upvotes: 2

Views: 9252

Answers (2)

Zgpeace
Zgpeace

Reputation: 4465

warning: just for testing
For testing: Setting Security Groups can solve the problem.

SecurityGroups > Inbound > Edit inbound rules > Add new rules > All TCP

enter image description here

Upvotes: 1

I tried to reproduce the thing, and I wasn't able to do it (it worked for me), so things that you should check:

1) Check that security group has indeed opened ports 80 and 8080 to your ip (or 0.0.0.0/0 if this is just a test just to confirm that this is not a firewall issue).

2) check the container is running:

docker ps -a

you should see: 0.0.0.0:8080->80/tcp under ports.

3) check that when you are sending the GET request, you are specifying the port 8080 in the request, so your browser should look something like:

http://your.ip:8080

or curl:

curl http://your.ip:8080

Upvotes: 3

Related Questions