Übergabe von Umgebungsvariablen an den Container in Docker
-
Verwendung der
-e
und-env
Tags Übergabe von Umgebungsvariablen an den Container in Docker - Verwenden Sie den Export-Befehl, um Umgebungsvariablen an den Container in Docker zu übergeben
-
Verwendung einer
-env
-Datei zur Übergabe von Umgebungsvariablen an den Container in Docker
In diesem Tutorial werden die Methoden zum Übergeben von Umgebungsvariablen an den Container in Docker vorgestellt.
Verwendung der -e
und -env
Tags Übergabe von Umgebungsvariablen an den Container in Docker
Wir beginnen damit, uns anzusehen, wie wir Umgebungsvariablen erstellen und an einen Container übergeben können. Wir beginnen damit, dass wir das Image, das wir verwenden werden, aus der Docker-Registrierung ziehen, indem wir den folgenden Befehl verwenden.
$ docker pull ubuntu~$ docker pull ubuntu
Ausgabe:
Using default tag: latest
latest: Pulling from library/ubuntu
08c01a0ec47e: Pull complete
Digest: sha256:669e010b58baf5beb2836b253c1fd5768333f0d1dbcb834f7c07a4dc93f474be
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
Wir verwenden das Tag -e
, die Kurzform von -env
, dessen Verwendung durch Ausführen des Befehls docker run -help
im Terminal überprüft werden kann. Mit diesem Argument können wir mehrere Schlüssel-Wert-Paare von Umgebungsvariablen erstellen, die an den Container übergeben werden.
So können wir eine einzelne Umgebungsvariable erstellen und an einen Container übergeben, den wir mit dem Ubuntu-Image erstellt haben.
$ docker run -it -e DEMO=sample_variable ubuntu bash
Ausgabe:
root@3a20bc21d3c8:/# echo $DEMO
sample_variable
Wir können auch mehrere Tags von -e
verwenden, um Umgebungsvariablen zu erstellen, indem wir sie einfach mit dem Befehl run verketten, während wir einen neuen Container erstellen, wie unten gezeigt.
$ docker run -it -e DEMO1=sample_variable1 -e DEMO2=sample_variable2 ubuntu bash
Nachdem wir diese beiden Umgebungsvariablen weitergegeben haben, können wir mit den folgenden Befehlen auf ihre Werte zugreifen. Wir haben Variable eins als DEMO1
bezeichnet, und wir können unten auf ihren Wert zugreifen.
root@9eee00d7ab01:/# echo $DEMO1
Ausgabe:
sample_variable1
In ähnlicher Weise können wir auch die Variable zwei ausdrucken, wie hier gezeigt.
root@9eee00d7ab01:/# echo $DEMO2
Ausgabe:
sample_variable2
Verwenden Sie den Export-Befehl, um Umgebungsvariablen an den Container in Docker zu übergeben
Alternativ können wir auch das Verketten von Umgebungsvariablen vermeiden, indem wir den Befehl export verwenden. Dieser Befehl ist ein integriertes Hilfsprogramm für die Linux-Bash-Shell, das auch mit der WSL verwendet werden kann.
Es ermöglicht uns, Umgebungsvariablen zu erstellen und an untergeordnete Prozesse zu übergeben, ohne bereits vorhandene Variablen zu beeinflussen. Wir beginnen mit der Erstellung der Umgebungsvariablen, wie unten gezeigt.
isaac@DESKTOP-HV44HT6:~$ export MYSQL_USER=isaactonyloi
isaac@DESKTOP-HV44HT6:~$ export MYSQL_PASS=fakepassword
Sobald wir die Umgebungsvariablen erstellt haben, können wir sie an einen Container übergeben, den wir erstellen, wie unten gezeigt.
$ docker run -it -e MYSQL_USER -e MYSQL_PASS ubuntu bash
Wir können dann mit dem Befehl echo wie unten gezeigt auf die jeweiligen Werte der Variablen zugreifen und diese anzeigen.
root@5b4dae06932d:/# echo $MYSQL_USER
isaactonyloi
Verwendung einer -env
-Datei zur Übergabe von Umgebungsvariablen an den Container in Docker
Ein besserer Ansatz, der Ihnen mehr Raum zum Debuggen gibt, besteht darin, stattdessen eine Docker-Decompose-Datei zu verwenden. Das bedeutet, dass wir jetzt beim Starten unseres Docker-Containers keine Umgebungsvariablen mehr direkt übergeben müssen.
Diese Methode bedeutet, dass wir eine externe .env
-Datei erstellen müssen, die unsere Umgebungsvariablen enthält. Wir können diese Datei mit dem folgenden Linux-Befehl in unserem Home-Verzeichnis erstellen.
Dieser Befehl wechselt in den Linux-vi-Editor und erstellt unsere Umgebungsvariablenliste.
$ vi env.list
Innerhalb des vi-Editors erstellen wir die Umgebungsvariablen als Schlüssel-Wert-Paare mit den Schlüsseln in Großbuchstaben und ihren jeweiligen Werten in Kleinbuchstaben. Wir beenden das Programm und speichern die Variable, indem wir den vollen Doppelpunkt drücken und den wq-Befehl
eingeben.
MYSQL_USER=isaactonyloi
MYSQL_PASS=fakepassword
wq
Mit dem Befehl ls
können wir bestätigen, dass die Datei env.list
erfolgreich gespeichert wurde. Dies sollte eine Liste von Dateien in diesem Verzeichnis mit env.list
unter den aufgelisteten zurückgeben.
Wir können auch den Befehl cat
verwenden, um die Einträge in dieser Liste anzuzeigen, wie unten gezeigt.
$ cat env.list
Ausgabe:
MYSQL_USER=isaactonyloi
MYSQL_PASS=fakepassword
Sobald wir das eingerichtet haben, können wir jetzt das Ubuntu-Image ausführen, um den neuen Container zu erstellen, und den Pfad angeben, wo wir Variablen gespeichert haben, um sie zu übergeben.
Die Datei env.list
wird in diesem Beispiel im Home-Verzeichnis abgelegt. Wenn sich Ihr Verzeichnis also in einem anderen Verzeichnis befindet, sieht Ihr Pfad möglicherweise anders aus.
Wir sollten den Befehl ausführen, um diese Umgebungsvariablen an den neuen Container zu übergeben.
$ docker run -it --env-file ./env.list ubuntu bash
Wir können überprüfen, ob wir die Umgebungsvariablen erfolgreich an den Container übergeben haben, indem wir die Variablen wie unten gezeigt drucken.
/# echo $MYSQL_USER
/# echo $MYSQL_PASS
Ausgabe:
Isaactonyloi
fakepassword
Anstelle der früheren Methoden können wir eine Vorlagendatei erstellen, die alle Umgebungsvariablen enthält, die wir übergeben möchten. Auf diese Weise können wir die in dieser Datei erstellten Umgebungsvariablen einfach überschreiben, wenn wir Änderungen vornehmen möchten.
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedIn