Originalmente, mi contenedor Docker pudo llegar a Internet externo (este es un servicio / contenedor Docker que se ejecuta en un Amazon EC2).
Como mi aplicación es una API, seguí la creación de mi contenedor (logró extraer todos los paquetes que necesitaba) con la actualización de mis Tablas IP para enrutar todo el tráfico desde el puerto 80 al puerto donde estaba mi API (ejecutándose en la ventana acoplable) escuchando
Luego, más tarde cuando intenté reconstruir el contenedor, falló. Después de mucha lucha, descubrí que mi paso anterior (establecer la regla de reenvío de puertos IPTable) estropeó la capacidad de red externa del acoplador.
Solución: Detenga su servicio de IPTable:
sudo service iptables stop
Reinicia el Docker Daemon:
sudo service docker restart
Luego, intente reconstruir su contenedor. Espero que esto ayude.
Seguimiento
Pasé por alto por completo que no necesitaba meterme con las Tablas IP para reenviar el tráfico entrante a 80 al puerto en el que se ejecutaba la API que se ejecutaba en la ventana acoplable. En cambio, simplemente alias el puerto 80 al puerto en el que se ejecutaba la API en Docker:
docker run -d -p 80:<api_port> <image>:<tag> <command to start api>
sysctl -w net.ipv4.ip_forward=1(en Centos 6)