2017-09-27 4 views
1

Je déclare mon service dans docker-compose.yml comme ceci:Docker composer: lier plusieurs hôtes à la IP de conteneur dynamique

wildfly: 
    image: "myrepo/wildfly:latest" 
    hostname: wildfly 

Alors, rédigez ajoute entrée/etc/hosts:

172.18.0.4  wildfly 

172.18.0.4 est généré automatiquement par docker.

Mais je dois lier some.host.name à ce produit IP dans /etc/hosts d'avoir plusieurs entrées dans/etc/hosts:

172.18.0.4  wildfly 
172.18.0.4  some.host.name 

Comment puis-je faire cela?

J'ai essayé d'utiliser la syntaxe extra_hosts, mais dans docker-compose.yml je n'ai aucune idée de ce que IP sera affecté au conteneur.

Quelqu'un at-il fait face au même problème?

+0

quelle version de docker utilisez-vous? 'docker version' –

+0

Salut, Tarun! '17.06.2-ce, build cec0b72' –

+0

J'ai des alias ajoutés temporairement dans les sections de domaine' networks' à 'some.host.name' pour deux services' wildfly'. Maintenant, dans un conteneur docker ajouté l'entrée désirée dans '/ etc/hosts' mais dans la seconde - n'a pas) Étrange, mais' some.host.name' est résolu pour les adresses IP du conteneur correspondant correctement. Une sorte de magie pour moi ... –

Répondre

1

Vous devez utiliser le format "3" du composant qui supporte les alias. Puisque vous utilisez déjà une version docker pris en charge

version: '3' 
services: 
    wildfly: 
    image: "myrepo/wildfly:latest" 
    hostname: wildfly 
    networks: 
     default: 
     aliases: 
      - some.host.name 

Ce ne sera pas ajouter des entrées d'accueil depuis docker utilise maintenant son propre serveur DNS interne. Si vous devez utiliser plusieurs fichiers de composition pour pouvoir accéder aux services. Ensuite, vous devez créer un réseau externe

docker network create commonnet 

Et puis utilisez ci-dessous dans votre Compose

version: '3' 
services: 
    wildfly: 
    image: "myrepo/wildfly:latest" 
    hostname: wildfly 
    networks: 
     commonnet: 
     aliases: 
      - some.host.name 
networks: 
    commonnet: 
    external: true 
+0

Thx, @TarunLalwani! Votre réponse m'a beaucoup aidé –