Başlangıçta docker konteynırım harici internete ulaşabildi (Bu bir Amazon EC2 üzerinde çalışan bir docker servisi / konteyneri).
Uygulamam bir API olduğundan, 80 numaralı bağlantı noktasından API'mın (docker üzerinde çalışan) olduğu bağlantı noktasına tüm trafiği yönlendirmek için IP Tablolarımı güncelleyerek konteynerin oluşturulmasını (ihtiyaç duyduğu tüm paketleri çekmeyi başardı) izledim dinliyor.
Daha sonra, kabı yeniden oluşturmayı denediğimde başarısız oldu. Çok uğraştıktan sonra, önceki adımımın (IPTable bağlantı noktası yönlendirme kuralını belirleme) liman işçisinin harici ağ oluşturma yeteneğini bozduğunu keşfettim.
Çözüm: IPTable hizmetinizi durdurun:
sudo service iptables stop
Docker Daemon'u yeniden başlatın:
sudo service docker restart
Ardından, kapsayıcınızı yeniden oluşturmayı deneyin. Bu yardımcı olur umarım.
Takip et
Ben tamamen gelen docker üzerinde çalışan API üzerinde çalıştığı bağlantı noktasına gelen trafiği 80 iletmek için IP Tabloları ile uğraşmak zorunda olmadığını gözardı. Bunun yerine, sadece port 80'i docker'daki API'nin çalıştığı bağlantı noktasına taktım:
docker run -d -p 80:<api_port> <image>:<tag> <command to start api>
sysctl -w net.ipv4.ip_forward=1
(Centos 6'da) çalıştırmak zorunda kaldı