À l'origine, mon conteneur docker pouvait atteindre Internet externe (il s'agit d'un service / conteneur docker fonctionnant sur un Amazon EC2).
Étant donné que mon application est une API, j'ai suivi la création de mon conteneur (il a réussi à extraire tous les packages nécessaires) en mettant à jour mes tables IP pour acheminer tout le trafic du port 80 vers le port que mon API (fonctionnant sur docker) était écoute.
Puis, plus tard, lorsque j'ai essayé de reconstruire le conteneur, cela a échoué. Après de nombreuses difficultés, j'ai découvert que l'étape précédente (définir la règle de transfert de port IPTable) avait gâché la capacité de mise en réseau externe du docker.
Solution: arrêtez votre service IPTable:
sudo service iptables stop
Redémarrez le démon Docker:
sudo service docker restart
Ensuite, essayez de reconstruire votre conteneur. J'espère que cela t'aides.
Suivre
J'ai complètement oublié que je n'avais pas besoin de jouer avec les tables IP pour transférer le trafic entrant à 80 vers le port sur lequel l'API fonctionnant sur docker fonctionnait. Au lieu de cela, j'ai juste aliasé le port 80 sur le port sur lequel l'API dans docker fonctionnait:
docker run -d -p 80:<api_port> <image>:<tag> <command to start api>
sysctl -w net.ipv4.ip_forward=1
(sur Centos 6)