DarkWolfCave
docker

SSH Verbindung in DOCKER Container

SSH Verbindung in DOCKER Container - docker Tutorial auf DarkWolfCave
DarkWolf hat eine Idee KI-Bild Generiert mit Gemini

SSH Verbindung in DOCKER Container

Manchmal benötigt man zum Testen, oder um schnelle (nicht persistente) Änderungen vorzunehmen, eine ssh-Verbindung in Docker Container. Wie du dich schnell auf eine solche Instanz mit SSH verbinden kannst, zeige ich dir in diesem Artikel.

DarkWolfCave.de

Voraussetzungen für eine SSH Verbindung in DOCKER Container

Damit du diese Schritte hier direkt ausprobieren kannst, benötigst du ein paar Voraussetzungen:

  • Eine Linux Umgebung (z.B. auf einem Raspberry)
  • Docker Installation
  • falls gewünscht: Portainer
  • MobaXterm, Putty oder ähnliches

SSH Verbindung in Docker Container über Portainer

Solltest du Portainer zum Verwalten deiner Docker Container benutzen, kannst du sehr einfach von dort aus ein Terminal starten. Dafür loggst du dich über die Web-GUI ein ( IP-DEINER-INSTALLATION:9443) und wählst “Container”. Auf der rechten Seite dann bei dem gewünschten Container auf das Symbol für “Exec Console” klicken:

SSH Verbindung in DOCKER Container - portainer

Im nächsten Fenster musst du in der Regel nichts ändern und kannst direkt auf “Connect” klicken:

SSH Verbindung in DOCKER Container - Console

Und schon öffnet sich ein Terminal Fenster für deine Docker Instanz, in der du jetzt Befehle absetzen kannst (hier z.B: influxd version). Trennen kannst du die Verbindung wieder, indem du auf “Disconnect” klickst:

SSH Verbindung in DOCKER Container - Terminal

SSH Verbindung in Docker Container über Terminal

Natürlich kannst du auch auf den altbekannten Weg eine SSH Verbindung in einen Docker Container herstellen. Dazu benutzt du einfach eine Terminal / Putty / MobaXterm Sitzung und verbindest dich mit der Maschine auf der Docker läuft.

Jetzt kannst du dir erst einmal alle deine Container anzeigen lassen:

docker ps

Ich selbst benutzte meistens eine “manipulierte” Ausgabe. Einfach um nur die Infos zu erhalten die ich auch sehen will. Falls du mehr dazu lesen magst findest du hier viele Infoszu docker:

docker ps --format "{{.ID}} : {{.Names}} : {{.Image}} : {{.State}}"

SSH Verbindung in DOCKER Container - docker ps

Bei dir wird es sicherlich etwas anders aussehen. Aber du siehst jedenfalls alle installierten Docker Container. Suche dir jetzt den richtigen aus um dich per SSH Verbindung in deinen Docker Container einzuwählen.

Dazu nutzen wir jetzt docker exec -it <container name oder ID> /bin/bash Wie erwähnt kannst du entweder die ID oder den Namen nutzen:

docker exec -it testdb /bin/bash

SSH Verbindung in DOCKER Container - docker exec

Nach dem Befehl ändert sich der Promt auf root@CONTAINER_ID und du befindest dich jetzt auf einer shell Umgebung in deinem Container. Mit “exit” kommst du wieder heraus.

Falls du aber eh nur einen Befehl absetzen, oder ein Sript (welches auf der Docker Umgebung bereits vorhanden ist) starten, kannst du dies auch direkt in einem Schritt erledigen. Im folgenden Beispiel setze ich einen Befehl auf einem influxdb Docker Container ab um mir die Version anzeigen zu lassen:

docker exec -it 77afff2b3aa1 influxd version

Was aber in jedem Container gehen sollte, allerdings Null Nutzen hat: :-P

docker exec -it 77afff2b3aa1 echo "Hello Docker Container - I hate Hello Worlds…. :-P"

SSH Verbindung in DOCKER Container - Docker Hello....

Angenommen du hast im root-Verzeichnis ein Script mit dem Namen test.sh erstellt. Dann könntest du dieses auch direkt starten:

docker exec -it 77afff2b3aa1 ./test.sh

SSH Verbindung in DOCKER Container - Screenshot

Hier der Inhalt der test.sh (macht wirklich nichts…):

#!/bin/bash
date=$(date --date "$1" +%F)
echo $date
uname -r
cat /etc/*release
echo "Hello Docker Container!"

Kommentare

URLs werden automatisch verlinkt
Kommentare werden geladen...