Bonjour,

J'ai constaté un souci avec docker et firewalld sous Centos7 : http://fr.centos.org/forums/viewtopic.php?f=38&t=4112

Pour résumer : Quand firewallD redemarre, il vide la table de iptables et donc les regles créées dynamiquement par docker sont perdues.
     systemctl start docker.service
    # iptables -L | grep DOCKER
    DOCKER     all  --  anywhere             anywhere
    Chain DOCKER (1 references)
    # systemctl restart firewalld.service
    # iptables -L | grep DOCKER
    #
Conséquence les conteneurs ne fonctionnent plus.
J'ai donc voulu tester sous Fedora et je constate le même souci. Si on redemarre docker après firewallD, on peut relancer les conteneurs mais sous php ils ne bénéficient plus de la résolution de nom alors que cela fonctionne en bash dans le conteneur.

Avez vous une idée de piste à creuser ?
Bonjour,

le problème c'est qu'à priori docker passer par iptables. Ce qui est deconseillé quand on a firewalld. Ce n'est pas très étonnant docker étant quand même une grosse usine à gaz. J'ai vu cette piste: https://github.com/docker/docker/pull/9397 mais pas creuser plus que ça. Dans cette solution ça passe par le message bus pour interagir avec firewalld.

Tu veux absolument garder firewalld?
J'ai testé de désactiver firewalld :
systemctl stop firewalld
systemctl disable firewalld
Puis un restart de docker. Et malgré tout le problème de résolution DNS subsiste.

Ce que je n'arrive pas à saisir, c'est quelle est la différence entre la résolution DNS de libcurl utilisée via PHP (qui ne fonctionne pas) et la résolution DNS de curl lancé via bash (qui elle fonctionne)
cquad wrote:J'ai testé de désactiver firewalld :
systemctl stop firewalld
systemctl disable firewalld
Puis un restart de docker. Et malgré tout le problème de résolution DNS subsiste.

Ce que je n'arrive pas à saisir, c'est quelle est la différence entre la résolution DNS de libcurl utilisée via PHP (qui ne fonctionne pas) et la résolution DNS de curl lancé via bash (qui elle fonctionne)
Je te conseille de lire ça http://doc.fedora-fr.org/wiki/Parefeu_-_firewall#Basculer_Firewalld_.C3.A0_netfilter_.2F_iptables parce que là, tu n'as plus de pare-feux.
Tu veux dire que dans ton conteneur, un ping fonctionne, mais dans ton code php rien? ou ton ping est hors conteneur?