Accéder au contenu principal Passer au contenu complémentaire

Configurer le DNS d'un conteneur Docker

Si Docker s'exécute sur une machine virtuelle (Docker for Mac, Docker for Windows), la configuration par défaut du DNS du conteneur est différente de celle des machines physiques. Dans ce cas, vous devez configurer le DNS dans le fichier de configuration de Docker fourni avec le Moteur distant Gen2.

Procédure

  1. Accédez au répertoire d'installation du Moteur distant Gen2 et ouvrez le fichier suivant pour le modifier :
    default/docker-compose.yml si vous utilisez le moteur dans les régions AWS USA, AWS Europe, AWS Asie-Pacifique ou Azure.

    eap/docker-compose.yml si vous utilisez le moteur au sein du programme Early Adopter Program.

  2. Pour configurer :
    1. la résolution DNS dynamique, ajoutez des serveurs nommé dans une section dns ou ajouter des suffixes dans une section dns_search. Les suffixes seront automatiquement ajoutés aux noms d'hôte pour la résolution DNS. Les entrées répertoriées dans la section dns_search s'afficheront dans le fichier /etc/resolv.conf de chaque conteneur.

      Exemple

      dns:
        - 8.8.8.8
        - 9.9.9.9
      dns_search:
        - dc1.example.com
        - dc2.example.com
    2. la résolution DNS statique, ajoutez des entrées dans une section extra_hosts. Ces entrées seront automatiquement ajoutées au fichier /etc/hosts de chaque conteneur.
      Note InformationsRemarque : Deux conteneurs Moteur distant Gen2, livy et component-server, nécessitent des connexions externes, par conséquent la configuration DNS peut avoir besoin des deux.

      Exemple

      extra_hosts:
       - "somehost:162.242.195.82"
       - "otherhost:50.31.209.229"
  3. Sauvegardez le fichier.

Résultats

Votre docker-compose.yml doit ressembler à cela :
version: '3.6'

networks: ...

volumes:...

services:
 ...
 component-server:
  image: ${COMPONENTS_IMG}
  ...
  labels:...
  dns:
  - 8.8.8.8
  - 9.9.9.9
  dns_search:
  - dc1.example.com
  - dc2.example.com  
  extra_hosts:
  - "somehost:162.242.195.82"
  - "otherhost:50.31.209.229"
...

Pour plus d'informations à ce sujet, consultez la documentation Docker.

En savoir plus :

Des services de Moteur distant Gen2 s'exécutent comme des conteneurs Docker sur un réseau de ponts définis par l'utilisateur ou l'utilisatrice appelé remote-engine_default.
Note InformationsConseil : Vous pouvez vérifier la présence de ces ponts définis par l'utilisateur ou l'utilisatrice en exécutant la commande docker network ls.
Comme pour la version Docker 1.10, les réseaux de ponts définis par l'utilisateur ou l'utilisatrice intègrent un serveur DNS. Consultez la documentation Docker concernant les serveurs DNS embarqués et les réseaux définis par l'utilisateur ou l'utilisatrice pour plus d'informations.

Un certain nombre d'options spécifiées au moment de l'exécution peuvent affecter la résolution du service DNS pour le conteneur Docker. En l'absence de ces options, Docker utilise par défaut /etc/resolv.conf de la machine hôte. La machine hôte est celle où le démon de Docker s'exécute. Parfois, Docker peut ne pas s'exécuter sur la machine physique mais plutôt sur une machine virtuelle. C'est pourquoi vous devrez configurer manuellement le DNS du conteneur Docker dans le fichier docker-compose.yml.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.