Docker ports work in localhost but not with public ip

I`m starting with docker i have the next docker-compose when i run docker-compose up all with success, when i do curl localhost works fine but when i try to access from the public ip dont works the connection timeout.

version: '3'
services:
  db:
   environment:
     - POSTGRES_PASSWORD=mipass
     - POSTGRES_USER=miuser
     - POSTGRES_DB=pdfdd
   image: postgres:9.6
  web:
   restart: always
   tty: true
   stdin_open: true
   build: .
   command: python ./code/manage.py runserver 0.0.0.0:8000
   volumes:
     - .:/code
   ports:
     - "8000:8000"
   depends_on:
     - db
  nginx:
    restart: always
    build: ./nginx/
    ports:
      - "80:80"
    volumes:
      - /www/static
      - .:/code
    links:
      - web:web

  • docker run does not work from cronjob
  • elastic beanstalk application can't find private docker image
  • server provisioning with Docker
  • Get the external Container Id to the Go Template
  • Kubernetes can't start due to too many open files in system
  • elastic-beanstalk docker app not updating upon deploy
  • How to set up a simple docker-contained reverse-proxying (nginx) server?
  • Sending Docker container logs to ELK Stack by configuring the logging drivers - Easy Method
  • Is it possible to add multiple source files in dokker.json?
  • docker push gives Failed to upload
  • How to hot deploy Java EE applications in Docker containers
  • cloudera manager can only inspect one host at a time
  • One Solution collect form web for “Docker ports work in localhost but not with public ip”

    Thanks @BMitch, i forgot to open 80 port in security group if someone have the same error please see Opening port 80 EC2 Amazon web services for instructions.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.