Docker: Erste Schritte

Schnelle und sichere Remote-Docker-Verwaltung mit Stackhero for Docker

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.

Docker CLI muss auf Ihrem Computer installiert sein. Falls Sie es noch nicht installiert haben, können Sie es auf der offiziellen Docker-Website herunterladen: Docker Desktop.

Mit Stackhero for Docker können Sie Ihre Container remote mit der Docker CLI verwalten – genauso wie lokal. Sie behalten Ihren gewohnten Workflow bei, führen Ihre Befehle aber direkt auf Ihrem produktionsbereiten Docker-Server aus: sicher und effizient.

Docker-"Contexts" machen dies möglich. Mit Contexts können Sie der Docker CLI mitteilen, wohin Ihre Befehle gesendet werden sollen: an Ihren lokalen Docker-Daemon oder an Ihre Stackhero for Docker Instanz. Das Wechseln zwischen Contexts ist schnell und nahtlos.

Um sich sicher mit Ihrer Stackhero for Docker Instanz zu verbinden, müssen Sie deren Zertifikate auf Ihrem Computer installieren. Diese Zertifikate sorgen für Authentifizierung und Verschlüsselung, sodass Ihre Verbindung privat und geschützt bleibt.

Sie können den folgenden Befehl verwenden, um die Zertifikate herunterzuladen und einzurichten:

# HOST ist der Domainname Ihrer Docker-Instanz (<XXXXXX>.stackhero-network.com).
# SERVICE_ID ist Ihre Stackhero Service-ID.
# CERTIFICATES_PASSWORD ist das Passwort, das Sie in Ihrer Docker-Konfiguration im Stackhero-Dashboard festgelegt haben.
(export HOST="<XXXXXX>.stackhero-network.com"
export SERVICE_ID="<SERVICE_ID>"
export CERTIFICATES_PASSWORD="<CERTIFICATES_PASSWORD>"

cd /tmp/ \
  && curl -o certificates.tar https://docker:$CERTIFICATES_PASSWORD@$HOST/stackhero/docker/certificates.tar \
  && tar -xf certificates.tar \
  && (docker context rm -f $HOST 2> /dev/null || true) \
  && docker context create $HOST \
    --description "$SERVICE_ID ($HOST)" \
    --docker "host=tcp://$HOST:2376,ca=ca.pem,cert=cert.pem,key=key.pem")

Dieser Befehl erstellt einen Docker-Context, der nach Ihrer Service-Domain benannt ist. Alle verfügbaren Contexts können Sie mit folgendem Befehl anzeigen:

docker context ls

Wenn Sie Ihre Service-Domain ändern, werden Ihre Zertifikate erneuert. Sie müssen diese dann neu installieren, um sich wieder sicher zu verbinden.

Standardmäßig zeigt docker ps die Container auf Ihrem lokalen Rechner an. Wenn Sie zum Beispiel folgenden Befehl ausführen:

docker run --rm alpine wget -q -O - ifconfig.me

wird Ihre lokale öffentliche IP-Adresse angezeigt, da der Container auf Ihrem Computer läuft.

Um remote zu arbeiten, wechseln Sie den Docker-Context auf Ihre Stackhero for Docker Instanz:

docker context use <XXXXXX>.stackhero-network.com

Ab jetzt werden alle Docker CLI-Befehle auf Ihrem Remote-Docker-Server ausgeführt. Wenn Sie denselben IP-Check-Befehl ausführen:

docker run --rm alpine wget -q -O - ifconfig.me

wird die öffentliche IP-Adresse Ihrer Stackhero for Docker Instanz angezeigt. Das bestätigt, dass Ihre Container auf dem Remote-Server laufen.

Um wieder auf Ihren lokalen Docker-Daemon zu wechseln, führen Sie einfach aus:

docker context use default

Wenn Sie ein Volume in einem Remote-Container mounten, stammen die verfügbaren Dateien vom Remote-Server, nicht von Ihrem lokalen Rechner. Zum Beispiel wird docker run -it -v ${PWD}:/mnt alpine das Remote-Verzeichnis mounten, nicht Ihr aktuelles lokales Verzeichnis.

Docker Compose verwendet ebenfalls den aktuellen Docker-Context. Sobald Sie den Context auf die Remote-Instanz gesetzt haben mit:

docker context use <XXXXXX>.stackhero-network.com

werden alle Docker Compose-Befehle auf Ihrem Remote-Server ausgeführt. So können Sie Multi-Container-Anwendungen genauso einfach wie lokal, aber direkt in Ihrer Produktionsumgebung bereitstellen.

Das Wechseln des Contexts mit docker context ist für die interaktive Nutzung praktisch. Für Skripte oder Makefiles bietet Ihnen die Umgebungsvariable DOCKER_CONTEXT mehr Kontrolle. Weitere Details finden Sie in unserer erweiterten Dokumentation.

Für einen tieferen Einblick in Docker Contexts finden Sie weitere Informationen in der offiziellen Docker-Dokumentation zu Contexts.