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.com durch Ihre spezifische Docker-Instanz-Domain (<XXXXXX>.stackhero-network.com).

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.

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

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 Zeile docker run [...] mit einem TAB-Zeichen und nicht mit Leerzeichen beginnt.

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 Zeile docker run [...] mit einem TAB-Zeichen anstelle von Leerzeichen beginnt.