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) Plattform, die für schnelle und zuverlässige Container-Bereitstellungen entwickelt wurde:
- Deployment in die Produktion mit nur einem
docker-compose up. Es ist keine zusätzliche Konfiguration erforderlich: Starten Sie einfach Ihre Container.- Wählen Sie Ihren eigenen Domainnamen, der automatisch per HTTPS gesichert wird (zum Beispiel: https://api.ihr-unternehmen.com, https://www.ihr-unternehmen.com oder https://backoffice.ihr-unternehmen.com).
- Profitieren Sie von hoher Performance und robuster Sicherheit auf einer privaten, dedizierten Infrastruktur.
- Updates können mit nur einem Klick angewendet werden – für eine einfache und unkomplizierte Wartung.
Ihre Container sind in etwa fünf Minuten produktiv einsatzbereit. Stackhero übernimmt für Sie das Infrastrukturmanagement, Updates und die Sicherheit, sodass Sie sich ganz auf die Entwicklung Ihrer Anwendungen konzentrieren können. Erfahren Sie mehr über das Docker CaaS Cloud Hosting.
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.