Docker-composer conteneur à l'aide d'hôte DNS du serveur

Je suis à court de plusieurs conteneurs sur mon "Ubuntu 16.10 Serveur" dans une "coutume" pont réseau avec composer 2.9 (dans un yml version 2.1). La plupart de mes contenants à l'interne utilisant les mêmes ports, donc il n'y a aucun moyen pour moi d'utiliser le "host" pilote de réseau.
Mes conteneurs sont tous des liens ensemble, à l'aide de l'dédié links attribut.

Mais, j'ai aussi besoin d'accéder à des services exposés à l'extérieur de mon conteneurs. Ces services ont consacré des URL avec des noms enregistrés dans mon entreprise de serveur DNS.
Alors que je n'ai pas de problème à utiliser des DNS publics et de la portée de toute la fonction publique à partir de l'intérieur de mes récipients, j'ai juste ne peut pas atteindre mon DNS privé.

S'il vous plaît, connaissez-vous une solution pour usage privé DNS à partir d'un conteneur? Ou mieux encore, utiliser réseau de l'hôte de configuration DNS?

PS: bien sûr, je peux accéder à mes services de la société à l'aide de la extra_hosts attribut dans mes services dans mon menu fixe-composer.fichier yml. Mais... c'est définitivement pas le but d'avoir un DNS. Je ne veux pas enregistrer tous mes services dans mon fichier YML, et je ne veux pas le mettre à jour à chaque fois des services de propriété intellectuelle sont mis à jour dans mon entreprise.

Contexte :

  • De l'hôte: Ubuntu 16.10 serveur
  • Docker Moteur: 1.12.6
  • Docker Composer: 1.9.0
  • docker-composer.yml: 2.1
  • Réseau: Propre pont.

docker-composer.fichier yml (extrait):

version: '2.1'
  services:
    nexus:
    image: sonatype/nexus3:$NEXUS_VERSION
    container_name: nexus
    restart: always
    hostname: nexus.$URL
    ports:
      - "$NEXUS_81:8081"
      - "$NEXUS_443:8443"
    extra_hosts:
      - "repos.private.network:192.168.200.200"
    dns:
      - 192.168.3.7
      - 192.168.111.1
      - 192.168.10.5
      - 192.168.10.15
    volumes_from:
      - nexus-data
    networks:
      - pic

  networks:
    pic:
      driver: bridge
      ipam:
        driver: default
        config:
          - subnet: 172.18.0.0/16
            gateway: 172.18.0.1

J'ai essayé avec et sans le ipam de configuration pour le pic réseau, sans aucune chance.

Tests & Résultats:
docker exec -ti nexus curl repos.private.network
renvoie correctement la page HTML desservis par ce service

docker exec -ti nexus curl another-service.private.network
Retourne curl: (6) Could not resolve host: another-service.private.network; Name or service not known
Alors que curl another-service.private.network de l'hôte retourne le code HTML de la page.

Et "bien sûr" another-service.private.network est connu dans ma 4 serveurs DNS (192.168.3.7, 192.168.111.1, 192.168.10.5, 192.168.10.15).

Cheers,
Olivier.

OriginalL'auteur Olivier | 2017-01-18