Początkowo mój kontener docker był w stanie dotrzeć do zewnętrznego internetu (jest to usługa / kontener docker działający na Amazon EC2).
Ponieważ moja aplikacja jest interfejsem API, kontynuowałem tworzenie mojego kontenera (udało mi się pobrać wszystkie potrzebne pakiety), aktualizując moje tabele IP, aby kierować cały ruch z portu 80 do portu, na którym znajdował się mój interfejs API (działający w Docker) nasłuchiwać.
Później, gdy próbowałem odbudować kontener, nie udało się. Po wielu zmaganiach odkryłem, że mój poprzedni krok (ustawienie reguły przekierowania portów IPTable) zepsuł możliwości zewnętrznej sieci dokera.
Rozwiązanie: Zatrzymaj usługę IPTable:
sudo service iptables stop
Uruchom ponownie demona platformy Docker:
sudo service docker restart
Następnie spróbuj odbudować kontener. Mam nadzieję że to pomoże.
Zagryźć
Całkowicie przeoczyłem, że nie musiałem majstrować przy tabelach IP, aby przekazywać ruch przychodzący do 80 do portu, na którym działało API działające w dockerze. Zamiast tego utworzyłem alias portu 80 do portu, na którym działał interfejs API w dockerze:
docker run -d -p 80:<api_port> <image>:<tag> <command to start api>
sysctl -w net.ipv4.ip_forward=1(na