Forum Linux.debian/ubuntu Docker - Comment utiliser une IP FailOver ?

Posté par  . Licence CC By‑SA.
Étiquettes :
1
19
août
2015

Bonjour à tous,

Je suis nouveau sur ce forum, je viens vers vous en espérant que vous pourriez m'aider.

J'utilise un serveur Ubuntu 14.04, chez OVH.

Depuis hier soir, j'essaye de relier un conteneur Docker APACHE+PHP pour qu'il utilise une IP FailOver.

J'explique :

J'ai donc créé une interface pour mon IP FailOver sur mon HOST :
auto eth0:0
iface eth0:0 inet static
address MON_IP_FAILOVER
netmask 255.255.255.255

Je lance le docker depuis cette commande :
docker run --name FailOver1 -p MON_IP_FAILOVER:9000:80 nom_de_mon_img

Dans mon conteneur, il y'a un fichier index.php :
<?php echo file_get_contents('http://ipecho.net/plain'); ?>

Lorque j’accède à http://MON_IP_FAILOVER:9000 ça fonctionne. Sauf que l'IP affiché n'est pas l'IP de mon FailOver, mais l'IP hôte…

Pour-vous m'expliquer comment utiliser des IPs FailOver DANS un docker ?
Mon but est que chaque conteneur ai ça propre IP d’accès et de sortie.

En vous remerciant.

  • # IP de sortie

    Posté par  . Évalué à 1.

    Ce que tu dis, c'est que ça fonctionne donc, puisque tu accèdes bien au service via l'IP failover.
    Cependant, les connexions sortantes sont fait par défaut via l'IP principale du serveur, et non l'IP failover, donc le file_get_contents('http://ipecho.net/plain') va renvoyer cette IP.

    Si tu veux que les connexions sortantes soient faites via l'IP failover (mais tu n'en as pas vraiment intérêt a priori):
    - tu dois pouvoir jouer avec iproute pour ça
    - utiliser curl au lieu de file_get_contents avec l'option CURLOPT_INTERFACE sur eth0:0

    NB1 : note que ce ne sera plus fonctionnel si tu veux tester ton service quand le serveur ne porte pas l'IP failover
    NB2 : je n'ai pas pris en compte Docker dans ma réponse, ça peut complexifier la chose. Mais je ne connais pas assez pour en parler.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.