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:
Im nächsten Fenster musst du in der Regel nichts ändern und kannst direkt auf “Connect” klicken:
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 ü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 Infos zu docker:
docker ps --format "{{.ID}} : {{.Names}} : {{.Image}} : {{.State}}"
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
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: 😛
docker exec -it 77afff2b3aa1 echo "Hello Docker Container - I hate Hello Worlds…. :-P"
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
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!"
Trage dich in den Newsletter ein!
Sie sehen gerade einen Platzhalterinhalt von Brevo. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen