Ursprünglich konnte mein Docker-Container das externe Internet erreichen (dies ist ein Docker-Dienst / Container, der auf einem Amazon EC2 ausgeführt wird).
Da es sich bei meiner App um eine API handelt, habe ich nach der Erstellung meines Containers (es gelang mir, alle benötigten Pakete abzurufen) meine IP-Tabellen aktualisiert, um den gesamten Datenverkehr von Port 80 zu dem Port zu leiten, an dem sich meine API (auf Docker ausgeführt) befand zuhören.
Als ich später versuchte, den Container neu aufzubauen, schlug dies fehl. Nach langem Hin und Her stellte ich fest, dass mein vorheriger Schritt (Festlegen der IPTable-Portweiterleitungsregel) die externen Netzwerkfunktionen des Dockers durcheinander brachte.
Lösung: Beenden Sie Ihren IPTable-Dienst:
sudo service iptables stop
Starten Sie den Docker-Daemon neu:
sudo service docker restart
Versuchen Sie dann, Ihren Container neu aufzubauen. Hoffe das hilft.
Nachverfolgen
Ich habe völlig übersehen, dass ich mich nicht mit den IP-Tabellen herumschlagen musste, um eingehenden Datenverkehr an 80 an den Port weiterzuleiten, auf dem die auf Docker ausgeführte API ausgeführt wurde. Stattdessen habe ich Port 80 nur auf den Port ausgerichtet, auf dem die API im Docker ausgeführt wurde:
docker run -d -p 80:<api_port> <image>:<tag> <command to start api>
sysctl -w net.ipv4.ip_forward=1
(auf Centos 6)