Vorwort Docker kann Umgebungsvariablen für Container konfigurieren. Es gibt zwei Möglichkeiten zur Konfiguration:
Verwenden Sie [root@localhost ~]# docker exec 984 umgebung PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/java/default/bin TERM=xterm AUTHORIZED_KEYS=**Keine** JAVA_HOME=/usr/java/default HOME=/Wurzel ... Im vom Container gestarteten Prozess, also in ENTRYPOINT+CMD, können die Umgebungsvariablen des Containers über die entsprechende Systembibliothek abgerufen werden. Rufen Sie den Container auf und zeigen Sie die Umgebungsvariablen des Prozesses an. Sie können sie unter /proc anzeigen. Katze /proc/{pid}/Umgebung Daher können die Umgebungsvariablen im Container auch durch Anzeigen der Umgebungsvariablen von Prozess Nr. 1 im Container abgerufen werden. Sie können es anzeigen, indem Sie den Befehl cat /proc/1/environ |tr '\0' '\n' ausführen. [root@localhost ~]# docker exec -it 984 cat /proc/1/environ |tr '\0' '\n' PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/java/default/bin TERM=xterm AUTHORIZED_KEYS=**Keine** JAVA_HOME=/usr/java/default HOME=/Wurzel ... Im Allgemeinen erben aus einem übergeordneten Prozess generierte untergeordnete Prozesse standardmäßig die Umgebungsvariablen des übergeordneten Prozesses. Daher sollten die Umgebungsvariablen jedes Prozesses im Container ungefähr gleich sein. Natürlich werden in einigen Sonderfällen auch Umgebungsvariablen zurückgesetzt, was zu Missverständnissen und Problemen führt. Nachfolgend werden einige häufige Situationen in Containern erläutert. Häufige Probleme und Lösungen Umgebungsvariablen verschwinden nach dem Wechsel zu anderen Benutzern Wechseln Sie im Container nach dem Start zu verschiedenen Benutzern. Wenn Sie beispielsweise mit Dies liegt daran, dass beim Wechseln der Benutzer die Umgebungsvariablen zurückgesetzt werden. Daher müssen Sie die Methode Wir können die Hilfe verwenden, um die Beschreibung der relevanten Parameter von su anzuzeigen. [root@adworderp-03a38d62-4103555841-m81qk /]# su --help Verwendung: su [OPTION]… [-] [USER [ARG]…] Ändern Sie die effektive Benutzer-ID und Gruppen-ID in die von USER. ... -m, --preserve-environment setzt HOME, SHELL, USER, LOGNAME nicht zurück Umgebungsvariablen -p dasselbe wie -m ... Verstümmelte Zeichen in Containern Einige Unternehmen berichten bei der Migration auf Container häufig von verstümmelten Protokollen. Der allgemeine Grund liegt darin, dass das Gebietsschema nicht richtig konfiguriert ist. Sie können das Gebietsschema des aktuellen Containers über das Gebietsschema anzeigen. Wenn nicht festgelegt, ist es normalerweise POSIX. Mit „locale -a“ können wir die vom aktuellen Container unterstützte Sprachumgebung anzeigen und sie dann nach Bedarf einstellen. Wenn Sie das Problem ein für alle Mal lösen möchten, fügen Sie beim Starten des Containers oder des Images am besten LANG={xxx} zu den Umgebungsvariablen hinzu und wählen Sie die entsprechende Sprache aus, um das dadurch verursachte Problem des verstümmelten Codes zu vermeiden. Problem mit der SSH-Umgebungsvariable Das Aktivieren von SSHD im Container kann die Verbindung und Fehlerbehebung sowie einige tägliche Betriebs- und Wartungsvorgänge erleichtern. Viele Benutzer, die den Container aufrufen, stellen jedoch fest, dass die beim Start von Docker konfigurierten Umgebungsvariablen nicht normal über den Befehl env angezeigt werden können. Der Hauptgrund hierfür ist, dass die Umgebungsvariablen zurückgesetzt werden, wenn SSH eine Verbindung für den Benutzer herstellt. Das größte dadurch verursachte Problem besteht darin, dass der über SSH gestartete Containerprozess die beim Start des Containers konfigurierten Umgebungsvariablen nicht abrufen kann. Nachdem Sie das Prinzip verstanden haben, gibt es eine einfache Möglichkeit, dieses Problem zu lösen. Das heißt, Sie können die Umgebungsvariablen des Containers nach der SSH-Verbindung auf die Sitzung zurücksetzen. Dann müssen wir nur noch ein paar Codezeilen zu /etc/profile hinzufügen, die Umgebungsvariablen des Containers selbst von Prozess Nr. 1 abrufen und dann die Umgebungsvariablen in einer Schleife exportieren. Es folgt eine einfache Implementierung einer For-Schleife. für Element in `cat /proc/1/environ |tr '\0' '\n'` Tun $item exportieren Erledigt Natürlich gibt es einen prägnanteren Befehl, nämlich „export $(cat /proc/1/environ |tr '\0' '\n' | xargs), der denselben Effekt erzielen kann. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
>>: So verwenden Sie die JSZip-Komprimierung in CocosCreator
Wenn ich das Formular eingabeunfähig machen möchte...
Inhaltsverzeichnis Diffing-Algorithmus Schicht-fü...
1. Einleitung Wenn die Datenmenge in der Datenban...
Was das Problem betrifft, dass der strikte Modus ...
Inhaltsverzeichnis 1. Szenario 2. Implementieren ...
Inhaltsverzeichnis 1. Einleitung 2. Einfache Defi...
Keepalived-Installation: cd <keepalived_source...
Vorwort HTTP ist ein zustandsloses Kommunikations...
Inhaltsverzeichnis 1. Zwei setState, wie oft soll...
Bearbeiten Sie /etc/docker/daemon.json und fügen ...
Der Schlüssel ist, dass der lokale Server keine S...
Was ist ein Spiegel? Ein Bild kann als Dateisyste...
Die spezifische Methode zur Installation von Cent...
Früher habe ich zur Handhabung dieser Art von Nut...
Gestern wollte ich a:visited verwenden, um die Fa...