Per SSH auf Docker-Container

Status
Für weitere Antworten geschlossen.

DasMoritz

Benutzer
Mitglied seit
19. Sep 2011
Beiträge
197
Punkte für Reaktionen
4
Punkte
18
Guten morgen in die Runde,

ich habe eine Frage:
Ich möchte via Putty auf einen Docker-Container zugreifen (iobroker), jedoch scheitere ich daran das ich dem Docker Container eigentlich gar keine Portfreigabe geben kann.

Wenn ich über "IP-DS-Station:22" via Putty darauf zugreifen will, dann lande ich logischerweise auf der DS (sofern 22 freigegeben ist).
Ich habe nun in einem zweiten "Testcontainer" den Port 22 hinzugefügt, das sieht wie folgt aus:
02-02-_2019_11-38-40.jpg

Hat jemand da eine gute Idee?

Danke und Gruß,
Moritz
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Was kommt denn wenn du nas-ip:32772 in Putty verwendest?

Der Container Port ist nur der Port innerhalb des Containers. Lokaler Port bezieht sich auf das Hostsystem / DS
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
Was willst Du am Ende erreichen?

Auf die Kommandozeile vom Container zu kommen? Dann kannt Du das aus der DSM Docker UI in den den Container-Details in dem Reiter "Terminal" tun.
Alternative: mit putty auf die DS Konsole, dort als root mit dem Befehl "docker exec -ti {containername} /bin/bash" eine interaktive Bash-Shell im Container starten.

Man braucht den SSH-Server nicht im Container. Gute Images haben den nie grundlos dabei.
Ausnahmen kann man an der Hand abzählen - die gibt es meistens nur weil die Anwendung den SSH-Server zwingend braucht (bspw. Git-Client zur Interaktion mit dem Git-Sever über ssh) oder der Ersteller versucht ihm bekannte Muster aus der VM-Welt in die Container-Welt zu übertragen.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: theexciter

DasMoritz

Benutzer
Mitglied seit
19. Sep 2011
Beiträge
197
Punkte für Reaktionen
4
Punkte
18
Moin,

ich möchte am Ende auf meiner IOBroker Instanz zwei Befehle ausführen. Hintergrund ist, dass ich einen DashButton in Homematic einbinden möchte (Anleitung).

@Haydibe: Wenn ich über die DSM-UI auf den Container gehe und die Befehle "sudo apt-get update bzw. sudo apt-get install libpcap-dev" eingebe kommt die Fehlermeldung ....

Ich habs... Ich habe bei den Befehlen auf der DSM UI immer "Sudo" davor geschrieben, was aber nicht nötig ist.

Danke euch beiden, es scheint zu gehen :)
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
Dein Ansatz wird dich kurzfristig glücklich machen & mittelfristig nerven..

Eine gutes Docker Image ist vergleichbar mit einer kastriserten read only VM. Eine daraus abgeleiter Container erlaubt dann flüchtige schreiboperationen für temporäre Daten/Änderungen. Wir der Container gelöscht, sind die flüchtigen Änderungen weg! Das was Du gemacht hast sind flüchtige Änderungen. Aus sicherheitsgründen sind im Image nur die notwenidgen Tools vorhanden. Dinge wie sudo werden normalerweise gelöscht oder unbenutzbar gemacht.

Wenn einem das Verhalten vom Image nicht passt:
- anderes Image suchen, was deinem benötigten Verhalten entspricht
- ein Dockerfile erstellen/anpassen, dass auf das Basis-Image aufsetzt und die benötigten Veränderungen vornimmt, so dass ein daraus gebautes NEUES Image dann passt.


Das ist fast ein bischen so, als wenn Du aus einem Mietwagen mit Chip-Tuning mehr Leistung rausholen willst. Bei jedem Ausleihen bekommst Du den Mietwagen im Original-Zustand (das Image von Dockerhub) und verbaust das Chipt-Tuning (~=deine Apt-Befehle), bei jeder Rückgabe baut es der Vermieter wieder aus. Sprich die Lösung ist nicht dauerhaft zu gebrauchen, da du bei jedem erneuten Ausleihen das Chip-Tuning wiederholen müsstest. Besser wäre aber gleich einen Mietwagen zu nehmen, der von Haus aus mit der Leistung daherkommt die Du haben willst, so das der Originalzustand dem entspricht was Du willst. Hier weisst Du, dass du nach einer Rückgabe jederzeit einen identisch konfigurierten Mietwagen mieten kannst. Dann hätten wir die bei Mietwagen eher unwahrscheinliche Variante, bei der eine Tuning-Werkstatt erlaubt Sondermodifikationen (~=Änderungen am Dockerfile) zu erstellen un diese dann vermietet. Auch hier würdest Du nach jeder Rückgabe beim nächsten Ausleih sofort die von dir gewollte Modifikation haben.

Das ist jetzt natürlich eine extrem vereinfachte Analogie, da man bei Mietwagen eher Fahrzeug-Klassen als genaue Fahrzeug-Typen bekommt und diese nicht immer verfügbar sind. Tun wir mal so als wenn man genaue Fahrzeug-Typen immer bekommt wenn man sie braucht und es keine Konsequenzen hat, dass man ein Chip-Tuning in ein Mietwagen eingebaut hat :)
 

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
579
Punkte für Reaktionen
66
Punkte
48
Guten morgen,
perfekt danach habe ich gesucht.

Leider bekomme ich eine Fehlermeldung ;-(

docker exec -ti homebridge /bin/bash
OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: "/bin/bash": stat /bin/bash: no such file or directory": unknown
 

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
579
Punkte für Reaktionen
66
Punkte
48
Es kann so einfach sein ;-)

Hat funktioniert, vielen Dank
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat