wake-up-neo.com

Festlegen des Hostnamens für einen Container, der in Kubernetes ausgeführt wird

Ich möchte den Hostnamen in einem Container festlegen, der in Kubernetes ausgeführt wird, aber Kubernetes scheint das zu überschreiben, was ich zur Laufzeit eingestellt habe.

Ich habe sowohl die Einstellung von/etc/hostname im Docker-Image, das ich als Kubernetes verwende, als auch echo "Host.example.com > /etc/hostname" in der CMD in der Dockerfile verwendet.

Es scheint ein Docker-Flag -h zu geben, um den Hostnamen festzulegen. Gibt es eine Möglichkeit, in meinem Replikationscontroller anzugeben, dass der Container mit einem speziellen Flag gestartet werden soll?

Das Debian des Containers, wenn es hilft.

25
Derek Gonyeo

Meine vorherige Antwort war falsch und wurde mit den richtigen Informationen bearbeitet

Das -h-Flag für docker run legt den Hostnamen des Containers fest, wenn Sie ihn erstellen.

Testen Sie es: docker run -h test.example.com -it ubuntu /bin/bash

Der Befehl docker start hat jedoch nicht das gleiche Argument -h oder --hostname. Es scheint nicht möglich zu sein, den Hostnamen eines vorhandenen Containers zu ändern, nur einen neuen aus einem Image.

Allerdings w/r/t Kubernetes: Es gibt ein offenes Problem auf Github bezüglich der Art und Weise, wie Kubernetes Hostnamen behandelt. Es scheint nicht so, als würde Kubernetes den Hostnamen des Dockers direkt verfügbar machen, aber Sie können ihn möglicherweise über den Namen Ihres Pods beeinflussen

27
edhurtig

Ich habe die Antwort für das Ändern des Docker-Hostnamens gefunden, nachdem der Container ausgeführt wurde, oder ich kann zu dem vorhandenen Container folgende Schritte sagen 

  1. Lauf 

    docker inspect -f '{{ .State.Pid }}' <existing_docker_hostname>
    

    Die Ausgabe wird eine Zahl <15580> sein

  2. Führen Sie diesen Befehl aus, um sich am Container anzumelden 

    nsenter --target 15580 --uts
    
  3. Führen Sie diesen Befehl aus, um den Hostnamen zu ändern 

    hostname "node_js"
    

verlassen Sie nun den Container und melden Sie sich erneut an. Der Hostname wurde geändert.

0
user9395071