Docker: Erweiterte Nutzung von Kontexten
Wie man Docker-Kontexte in Ihren Skripten verwendet
👋 Willkommen in der Stackhero-Dokumentation!
Stackhero bietet eine einsatzbereite Docker Cloud CaaS (Containers as a Service) Lösung, die zahlreiche Vorteile bietet, darunter:
- Einfache Bereitstellung Ihrer Container in der Produktion mit nur einem
docker-compose up.- Anpassbarer Domainname gesichert mit HTTPS (zum Beispiel, https://api.ihre-firma.com, https://www.ihre-firma.com, https://backoffice.ihre-firma.com).
- Optimale Leistung und robuste Sicherheit durch eine private und dedizierte VM.
- Mühelose Updates mit nur einem Klick.
Sparen Sie Zeit und vereinfachen Sie Ihr Leben: Es dauert nur 5 Minuten, um die Docker CaaS Cloud Hosting Lösung von Stackhero auszuprobieren und Ihre Container in der Produktion bereitzustellen!
Die Arbeit mit Docker-context use-Befehlen ist ideal, um Befehle manuell auszuführen. Bei der Verwendung von Skripten gibt es jedoch bessere alternative Methoden, die den Prozess vereinfachen. Anstatt den Befehl direkt aufzurufen, können Sie den gewünschten Kontext mit der Umgebungsvariable DOCKER_CONTEXT festlegen. Dieser Ansatz integriert sich nahtlos in Skript-Workflows und erhält die Konfigurationsklarheit.
In den bereitgestellten Beispielen ersetzen Sie
<XXXXXX>.stackhero-network.comdurch Ihre spezifische Docker-Instanz-Domain (<XXXXXX>.stackhero-network.com).
Verwaltung von Docker-Kontexten in Bash-Skripten
Hier ist ein Beispiel, wie man den Docker-Kontext innerhalb eines Bash-Skripts festlegt:
#!/bin/bash
set -e
DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
echo "IP von Docker für Stackhero-Instanz:"
docker run --rm alpine wget -q -O - ifconfig.me
Durch das Festlegen der Umgebungsvariable DOCKER_CONTEXT können Sie den aktiven Kontext bequem direkt in Ihren Skripten verwalten.
Auslagerung der Konfiguration mit einer .env-Datei
Um das Hardcoding des DOCKER_CONTEXT zu vermeiden, können Sie dessen Wert aus einer .env-Datei laden. Diese Methode hält die Umgebungsparameter organisiert und erleichtert Anpassungen:
#!/bin/bash
set -e
source .env
echo "IP von Docker für Stackhero-Instanz:"
docker run --rm alpine wget -q -O - ifconfig.me
Erstellen Sie eine .env-Datei mit folgendem Inhalt:
DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
Nutzung von Docker-Kontexten in Makefiles
Sie können die Variable DOCKER_CONTEXT auch in einem Makefile festlegen. Hier ist ein Beispiel für das Exportieren der Variable und das Ausführen eines Docker-Containers:
# Makefile
export DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
getIp:
docker run --rm alpine wget -q -O - ifconfig.me
Nachdem Sie das Makefile erstellt haben, rufen Sie den Befehl auf mit:
make getIp
Wenn Sie den Fehler
Makefile: *** missing separator. Stop.erhalten, stellen Sie sicher, dass die Zeiledocker run [...]mit einem TAB-Zeichen und nicht mit Leerzeichen beginnt.
Nutzung von .env-Dateien in Makefiles
Sie können die Konfiguration weiter vereinfachen, indem Sie eine .env-Datei in Ihr Makefile einbinden. Dieser Ansatz gewährleistet eine zentrale Verwaltung Ihrer Umgebungsparameter:
# Makefile
include .env
export
getIp:
docker run --rm alpine wget -q -O - ifconfig.me
Erstellen Sie eine .env-Datei mit diesem Inhalt:
DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
Führen Sie dann den Befehl aus:
make getIp
Wenn Sie den Fehler
Makefile: *** missing separator. Stop.erhalten, überprüfen Sie, ob die Zeiledocker run [...]mit einem TAB-Zeichen anstelle von Leerzeichen beginnt.