# Konfigurieren des Docker-Container-DNS

Wenn Docker auf einem virtuellen Gerät ausgeführt wird (Docker für Mac, Docker für Windows), unterscheidet sich die Standardkonfiguration des Container-DNS von derjenigen auf dem physischen Gerät. In diesem Fall müssen Sie das DNS in der mit der Remote Engine Gen2 bereitgestellten Docker-Konfigurationsdatei konfigurieren.

## Prozedur

1. Navigieren Sie zum Installationsverzeichnis von Remote Engine Gen2 und öffnen Sie die folgende Datei, um sie zu bearbeiten.

   default/docker-compose.yml, wenn Sie die Engine in den Regionen AWS USA, AWS Europa, AWS Asien/Pazifik oder Azure einsetzen.

   eap/docker-compose.yml, wenn Sie die Engine im Rahmen eines Early-Adopter-Programms verwenden.
2. Für die Konfiguration:
   1. der dynamischen DNS-Auflösung fügen Sie Namensserver in einer dns-Section oder Suffixe in einer dns\_search-Section hinzu. Die Suffixe werden für die DNS-Auflösung automatisch zu den Hostnamen hinzugefügt. Die in der Section dns\_search aufgeführten Einträge werden in der Datei /etc/resolv.conf jedes Containers angezeigt.
      ## Example
      ```
      dns:
        - 8.8.8.8
        - 9.9.9.9
      dns_search:
        - dc1.example.com
        - dc2.example.com
      ```
   2. der statischen DNS-Auflösung fügen Sie Einträge in einer extra\_hosts-Section hinzu. Diese Einträge werden automatisch in der Datei /etc/hosts jedes Containers hinzugefügt.

      InformationshinweisAnmerkung: Die zwei Remote Engine Gen2-Container livy und component-server benötigen externe Verbindungen, deshalb ist die DNS-Konfiguration ggf. für beide Container erforderlich.
      ## Example
      ```
      extra_hosts:
       - "somehost:162.242.195.82"
       - "otherhost:50.31.209.229"
      ```
3. Speichern Sie die Datei.

## Ergebnisse

docker-compose.yml sollte folgendermaßen aussehen:

```
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"
...
```

Weitere Informationen finden Sie in der [Docker-Dokumentation](https://docs.docker.com/compose/compose-file/).

Erfahren Sie mehr:

Die Dienste von Remote Engine Gen2 werden als Docker-Container in einem benutzerdefinierten Bridge-Netzwerk namens remote-engine\_default ausgeführt.

InformationshinweisTipp: Sie können die Präsenz dieser benutzerdefinierten Bridge prüfen, indem Sie den Befehl docker network ls ausführen.

Ab Docker-Version 1.10 integrieren die benutzerdefinierten Bridge-Netzwerke einen DNS-Server. Weitere Informationen zu [integrierten DNS-Servern](https://docs.docker.com/v17.09/engine/userguide/networking/#embedded-dns-server) und [benutzerdefinierten Netzwerken](https://docs.docker.com/v17.09/engine/userguide/networking/configure-dns/) finden Sie in der Docker-Dokumentation.

Eine Reihe von zur Laufzeit angegebenen Optionen können die DNS-Dienstauflösung für die Docker-Container beeinflussen, wenn diese Optionen jedoch fehlen, verwendet Docker standardmäßig /etc/resolv.conf des Hostgeräts. Das Hostgerät ist das Gerät, auf dem der Docker-Dämon ausgeführt wird. In manchen Fällen wird Docker ggf. nicht auf dem physischen Gerät, sondern auf einem virtuellen Gerät ausgeführt. Aus diesem Grund müssen Sie das Docker-Container-DNS unter Umständen manuell in der Datei docker-compose.yml konfigurieren.