Hinzufügen von ShortHostName zur Hostname-Datei und ShortHostName.DOMAIN zur Hosts-Datei im Docker-Container

432
Mohammed Noureldin

Wenn ich benutze

docker run --it --name myContainer --hostname myShortHostName ubuntu bash 

Das wird myShortHostNamezur /etc/hostnameDatei hinzufügen . Und 172.169.X.X myShortHostNamein /etc/hosts file.

In diesem Fall verwende ich jedoch den hostname -fBefehl zum Abrufen meiner Container FQDN, da FQDNin der /etc/hostsDatei kein Eintrag vorhanden ist . Ich kann es nicht bearbeiten, da es bei jedem Booten des Containers ersetzt wird.

Und wenn ich verwendet habe:

docker run --it --name myContainer --hostname myShortHostName.DOMAIN ubuntu bash 

Dadurch wird die Datei FQDNin eine /etc/hostnameDatei eingefügt, die von den hostnameRegeln nicht empfohlen wird, und nicht die von mir in meinem System verwendete Konvention.

Die empfohlene Methode zum Festlegen des FQDN besteht darin, den Hostnamen als Aliasnamen für den vollständig qualifizierten Namen zu verwenden, indem / etc / hosts, DNS oder NIS verwendet wird. Wenn der Hostname beispielsweise "ursula" war, könnte in / etc / hosts eine Zeile stehen, die liest

 127.0.1.1 ursula.example.com ursula 

Gibt es eine Möglichkeit (eigentlich ich brauche idealen Weg, nicht das Bearbeiten die Dateien mit einem Skript nach den Containern Boote), um nur die kurze hinzufügen Datei und die FQDN / etc / hosts mit dem Datei - Befehl oder über Docker des in Befehlen oder Techniken gebaut ?myShortHostName/etc/hostnamedocker run

Was ich brauche, ist in der Lage zu sein, den ShortHostName von hostname -soder hostnameund den ShortHostName.DOMAIN (FQDN) durch Verwendung hostname -fdes Docker-Containers abzurufen, ohne den FQDN der /etc/hostnameDatei hinzuzufügen .

0

1 Antwort auf die Frage

0
danblaker

Sie können sicherstellen, dass der vollqualifizierte Domänenname zu / etc / hosts in Ihrem Docker-Container hinzugefügt wird, indem Sie das --domainnameArgument an Ihren docker runBefehl übergeben. Führen Sie beispielsweise Ihren Container mit dem folgenden Befehl aus:

docker run --it --name myContainer --hostname ursula --domainname example.com ubuntu bash

führt dazu, dass der folgende Eintrag in / etc / hosts erstellt wird:

172.169.X.X ursula.example.com ursula