NEUES UPGRADE mit IP 8.1 verfügbar
4. Vorab-Version der Timberwolf VISU mit neuem Diagramm Design Assistenten und vielen Verbesserungen
Neues Backup V4 mit Sicherung Docker Volumes und Migration von 3xx/9xx auf TWS 3500 inkl. FIX mit 8.1
Hinweis: Neue Artikelserie zu Datensicherung / Wiederherstellung / Migration im Wiki online
Alle Infos zur neuen Insider Preview im Wiki: https://elabnet.atlassian.net/l/cp/LUJgwMg7

[Beantwortet] [V3.5.1] Ubuntu-Container via Portainer installieren und per ssh zugreifen?

Informationen über Docker, Verwaltung mit portainer und VMs
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

Ersteller
rowitech
Reactions:
Beiträge: 60
Registriert: So Sep 18, 2022 5:50 pm
Hat sich bedankt: 73 Mal
Danksagung erhalten: 13 Mal

[V3.5.1] Ubuntu-Container via Portainer installieren und per ssh zugreifen?

#1

Beitrag von rowitech »

Hallo,

wahrscheinlich eine dumme Frage, aber ich bin schon den ganzen Tag dran:
Ich versuche im Portainer ein Ubuntu (oder ein Debian) zu installieren, den Port 22 auf 6022 zu mappen (bridge-Mode), aber der Port ist nicht offen. Hat Ubuntu/Debian von Hause aus als docker-Image keinen sshd? Ich habe probiert, einen Apache (httpd) mal probehalber zu installieren, den Port 80 auf 6080 zu Mappen und das geht einwandfrei.

Und nochwas: Ich habe im Terminal im Portainer verzweifelt versucht, ein apt Update / Upgrade zu machen, aber so langsam beschleicht mich das Gefühl, dass das nicht das echte Terminal des Conatiners war. Könnte ich da etwas beim Timberwolf kaputt gemacht haben? Ich bin da leider Rookie, sorry..

Grüße,
Rolf
Zuletzt geändert von Parsley am So Feb 11, 2024 11:36 pm, insgesamt 1-mal geändert.
Timberwolf 3500XL, ID 1079, ETS6 (Home), zumeist MDT-Komponenten
Benutzeravatar

Chris M.
Reactions:
Beiträge: 1184
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 227 Mal
Danksagung erhalten: 839 Mal
Kontaktdaten:

#2

Beitrag von Chris M. »

Das kein sshd-Server läuft kann sein, was sagt denn "ps aux | grep sshd"?

Im Terminal des Containers kannst Du nichts am Timberwolf kaputt machen (außer evtl. für einen viel zu hohen Ressourcen-Verbrauch zu sorgen, was aber mit Beenden des Containers sich lösen)
(Diese Aussage nimmt an, dass Du natürlich keinen Jailbreak versuchst; durch das bewusste Ausnutzen von Sicherheitslücken kann man evtl. schon ausbrechen und Schaden erzeugen)
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache
Benutzeravatar

starwarsfan
Reactions:
Beiträge: 1133
Registriert: Mi Okt 10, 2018 2:39 pm
Hat sich bedankt: 731 Mal
Danksagung erhalten: 904 Mal

#3

Beitrag von starwarsfan »

Hallo Rolf
rowitech hat geschrieben: So Feb 11, 2024 10:31 pm Ich versuche im Portainer ein Ubuntu (oder ein Debian) zu installieren, den Port 22 auf 6022 zu mappen (bridge-Mode), aber der Port ist nicht offen.
Da stellt sich mir schon die Frage, ob Du das wirklich so machen möchtest denn auf Port 6022 wird im Container per default sicher kein ssh lauschen. Ausserdem ist es durchaus möglich, dass der Port 22 vom TW selber schon belegt ist, dann kannst Du den auch nicht mappen.

Andersherum wird ein Schuh draus: Ein Mapping der Art 6022:22, also Port 6022 des Host-Systems auf Port 22 des Containers mappen. Dann kannst Du Dich mit dem Port 6022 des TW verbinden und landest im Container auf Port 22.

Mit ein paar Screenshots Deiner Settings wäre das auf jeden Fall noch viel einfacher... :whistle:
Kind regards,
Yves

- TWS 2500 ID:159 (VPN offen, Reboot nach Rücksprache) - PBM ID:401 - TWS 3500 ID:618 (VPN offen, Reboot nach Rücksprache) - ControlPro - ProxMox - Edomi (LXC / Docker) - ... -

Ersteller
rowitech
Reactions:
Beiträge: 60
Registriert: So Sep 18, 2022 5:50 pm
Hat sich bedankt: 73 Mal
Danksagung erhalten: 13 Mal

#4

Beitrag von rowitech »

Hallo Yves und Chris,

ich möchte den vorhandenen SSH-Port 22 (im Docker-Container) auf den externen Port 6022 mappen, nicht umgekehrt, richtig. Bei http hatte das ja auch funktioniert mit 80 vom Container auf 6080 nach "draußen".

@Chris M. Wie komme ich ohne SSH-Zugang auf die Shell des Containers? ich dachte, ich käme über die Console via Portainer gleich auf die Shell des Docker-Ubuntu, bin mir aber jetzt doch nicht mehr sicher, ob ich da auf der Timberwolf-Shell bin (mangels Wissen über Portainer). Und wenn ich auf der richtigen Ubuntu-Shell bin, kann ich kaum Befehle ausführen, da ist das mir bekannte Debian-Minimal noch mehr ausgestattet, es sieht mehr nach einer Art "Not-Shell" aus, ich kann nichtmal ein apt update machen.

Zur Verdeutlichung hier noch die angefragten Screenshots.

Möglich, dass ein Container-Image von Ubuntu (oder Debian) nochmal sehr viel kleiner ist als das Debian Minimal, was schon kaum was hat. Wundert mich dann nur etwas, weil Unbedarftere dann erstmal Basics bauen müssten (wie ein funktionierendes apt update). Auf jeden Fall kam Port 22 nicht "draußen" an. Vielleicht ist ja nichtmal ein sshd installiert und muss dann installiert werden.

Sorry, das sind bestimmt absolute Basics mit Portainer und Docker-Images, aber ich bin hier noch wackelig (bei Linux selbst kenne ich mich gut aus).

Nachtrag:
ps aux zeigt absolut nicht viel:

Code: Alles auswählen

root@a58c42905aa9:/# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   4000  3316 pts/0    Ss+  10:21   0:00 /bin/bash
root         7  0.0  0.0   4000  3304 pts/1    Ss+  10:21   0:00 bash
root        14  0.0  0.0   4000  3296 pts/2    Ss   10:29   0:00 bash
root        20  0.0  0.0   6408  1652 pts/2    R+   10:32   0:00 ps aux
root@a58c42905aa9:/#
Nachtrag 2:
Wenn das wirklich die Container-Shell ist, dann ist das absolut minimal. Kein vi, kein nano, ich kann nichtmal die sources.list anpassen, um etwas zu installieren. Puh, ist das so wirklich korrekt? Und gibt es andere Images oder Parameter beim Erstellen des Containers, so dass man irgendwie damit arbeiten kann?


Grüße,
Rolf
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von rowitech am Mo Feb 12, 2024 11:40 am, insgesamt 3-mal geändert.
Timberwolf 3500XL, ID 1079, ETS6 (Home), zumeist MDT-Komponenten

gbglace
Reactions:
Beiträge: 3561
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1238 Mal
Danksagung erhalten: 1626 Mal

#5

Beitrag von gbglace »

rowitech hat geschrieben: Mo Feb 12, 2024 11:28 am weil Unbedarftere dann erstmal Basics bauen müssten (wie ein funktionierendes apt update).
Es ist zwar OT aber ein unbedarfter kommt auch nicht auf die Idee sich auf dem TWS einen Container mit nackigem OS zu bauen.
Welchen Zweck soll das erfüllen?

Ich habe mir das so gemerkt das ein Container quasi einen Service bereitstellt und da ist alles vom OS inkl. aller sonstigen notwendiger Sourcen drin enthalten damit dieser eine Service auch tut was er soll.

Den TWS als Entwicklungsumgebung für Containerkompositionen würde ich jetzt so auch nicht sehen.
Zumindest nicht auf einen in der produktiv Umgebung meiner Haussteuerung laufenden TWS.
Grüße
Göran

#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#3 PBM 3 Kanäle, #4 Modbus-Extension
Benutzeravatar

starwarsfan
Reactions:
Beiträge: 1133
Registriert: Mi Okt 10, 2018 2:39 pm
Hat sich bedankt: 731 Mal
Danksagung erhalten: 904 Mal

#6

Beitrag von starwarsfan »

Hallo Rolf

rowitech hat geschrieben: Mo Feb 12, 2024 11:28 am ich möchte den vorhandenen SSH-Port 22 (im Docker-Container) auf den externen Port 6022 mappen, nicht umgekehrt, richtig. Bei http hatte das ja auch funktioniert mit 80 vom Container auf 6080 nach "draußen".
Ok, dann ist das Wording auf Deiner Seite falsch. Port-Mappings werden immer von aussen nach innen beschrieben, also vom Host in den Container. Somit willst Du den Port 6022 vom Host auf den Port 22 des Containers mappen. Daher auch die Schreibweise <host-port>:<container-port>, in dem Fall also 6022:22

rowitech hat geschrieben: Mo Feb 12, 2024 11:28 am Wenn das wirklich die Container-Shell ist, dann ist das absolut minimal. Kein vi, kein nano, ich kann nichtmal die sources.list anpassen, um etwas zu installieren. Puh, ist das so wirklich korrekt?
Das ist so absolut korrekt. Wie auch Göran bereits schrieb, ist ein Container nicht dafür gedacht, händisch "befüllt" zu werden. Ein Container-Image ist für sich fertig, also "ready2run". Genau das ist die Idee von Docker-Containern! Dort drin gibt es nur genau das, was es zum ausführen von Software X in diesem Container braucht.

Du solltest Dich zunächst nochmal mit der Idee von Docker und danach dann ggf. mit dem Erstellen eigener Images beschäftigen. :handgestures-thumbupright:
Kind regards,
Yves

- TWS 2500 ID:159 (VPN offen, Reboot nach Rücksprache) - PBM ID:401 - TWS 3500 ID:618 (VPN offen, Reboot nach Rücksprache) - ControlPro - ProxMox - Edomi (LXC / Docker) - ... -

Ersteller
rowitech
Reactions:
Beiträge: 60
Registriert: So Sep 18, 2022 5:50 pm
Hat sich bedankt: 73 Mal
Danksagung erhalten: 13 Mal

#7

Beitrag von rowitech »

Hallo zusammen,

ich bin über einen Beitrag gestolpert, dass im Kontext mit "älteren Portainer-Versionen" (nicht näher spezifiziert) bei Debian und auch Ubuntu dazu führt, dass diese sich aufgrund dortiger Sicherheitserweiterungen nicht mehr so einfach installieren lassen. Daher gebe ich es an dieser Stelle auf.

Mit ist durchaus bewusst, wie Docker an sich funktioniert und dass ein volständiges Linux da gern als Overkill bezeichnet wird. Andererseits ist es "um mal eben eine Maschine hochzufahren und eben mal was zu testen, ohne die eigene große Maschine zu verbasteln" durchaus angenehm und ich dachte, das wäre hier auch möglich.

Aber auch ist mir bewusst, dass ein Timberwolfserver natürlich für sowas nicht gedacht ist (hätte ja trotzdem klappen können).

Beste Grüße,
Rolf
Timberwolf 3500XL, ID 1079, ETS6 (Home), zumeist MDT-Komponenten

Cepheus73
Reactions:
Beiträge: 165
Registriert: Sa Aug 11, 2018 11:36 pm
Wohnort: München
Hat sich bedankt: 380 Mal
Danksagung erhalten: 108 Mal

#8

Beitrag von Cepheus73 »

rowitech hat geschrieben: Mo Feb 12, 2024 1:17 pm Mit ist durchaus bewusst, wie Docker an sich funktioniert und dass ein volständiges Linux da gern als Overkill bezeichnet wird. Andererseits ist es "um mal eben eine Maschine hochzufahren und eben mal was zu testen, ohne die eigene große Maschine zu verbasteln" durchaus angenehm und ich dachte, das wäre hier auch möglich.
Mmm.

Das ist auch hier möglich, aber du hast halt schlicht das falsche Image als Basis dafür genommen.
"Minimal" bedeutet halt auch minimal, da ist halt nichts ausser dem absolut notwendigen zum Laufen drin. Konfiguration der Shell für interaktiven Betrieb gehört nicht dazu.
Dieses Image dient halt in erster Linie als Basis für service-spezifische Images - wenn ein Service mehr braucht, dann wird das halt im Service Layer dazuinstalliert im servicespezifischen Dockerfile. Alles unnötige ist da Ballast.
rowitech hat geschrieben: Mo Feb 12, 2024 1:17 pm Aber auch ist mir bewusst, dass ein Timberwolfserver natürlich für sowas nicht gedacht ist (hätte ja trotzdem klappen können).
Nein, es hätte mit dem falschen Image auch auf einem anderen Host nicht klappen können, das hat nichts mit dem TWS zu tun.

Du musst dir halt ein Image für den Container raussuchen, das die von dir gewünschten Dinge installiert hat.
Oder selber eines anlegen, da kannst ja dann "minimal" als Basis dafür nehmen. Brauchst halt einen anderen Host als den TWS zum Erstellen.

Viele Grüße

Bernhard
Zuletzt geändert von Cepheus73 am Mo Feb 12, 2024 4:20 pm, insgesamt 2-mal geändert.
TW 2600 #178 - VPN offen, Zugriff jederzeit
EFH, KNX, 1-Wire, DALI, Wiregate,
CometVisu (TW Docker-Container), Mobotix T25, Logiken für Licht- und Rolladensteuerung
1-Wire-Ventilaktoren + Logiken für Gartenbewässerung

Cepheus73
Reactions:
Beiträge: 165
Registriert: Sa Aug 11, 2018 11:36 pm
Wohnort: München
Hat sich bedankt: 380 Mal
Danksagung erhalten: 108 Mal

#9

Beitrag von Cepheus73 »

rowitech hat geschrieben: Mo Feb 12, 2024 11:28 am ich dachte, ich käme über die Console via Portainer gleich auf die Shell des Docker-Ubuntu, bin mir aber jetzt doch nicht mehr sicher, ob ich da auf der Timberwolf-Shell bin (mangels Wissen über Portainer).
Auf die TWS-Shell kommst du als Anwender gar nicht drauf, die ist abgesperrt. Das ist schon die Shell des Containers.
rowitech hat geschrieben: Mo Feb 12, 2024 11:28 am Und wenn ich auf der richtigen Ubuntu-Shell bin, kann ich kaum Befehle ausführen, da ist das mir bekannte Debian-Minimal noch mehr ausgestattet, es sieht mehr nach einer Art "Not-Shell" aus, ich kann nichtmal ein apt update machen.
So schaut halt jede Shell aus, der die Konfigdateien fehlen und deren Environment (z.B. PATH-Variable) rudimentär ist. 95% des Look&Feel der Shell wird ja durch Konfig gemacht, die fehlt halt in so einem Basis-Image, weil normalerweise nicht benötigt oder durch abgeleitete Images später hinzugefügt.
TW 2600 #178 - VPN offen, Zugriff jederzeit
EFH, KNX, 1-Wire, DALI, Wiregate,
CometVisu (TW Docker-Container), Mobotix T25, Logiken für Licht- und Rolladensteuerung
1-Wire-Ventilaktoren + Logiken für Gartenbewässerung

Ersteller
rowitech
Reactions:
Beiträge: 60
Registriert: So Sep 18, 2022 5:50 pm
Hat sich bedankt: 73 Mal
Danksagung erhalten: 13 Mal

#10

Beitrag von rowitech »

Hallo nochmal,
Das ist auch hier möglich, aber du hast halt schlicht das falsche Image als Basis dafür genommen.
"Minimal" bedeutet halt auch minimal, da ist halt nichts ausser dem absolut notwendigen zum Laufen drin. Konfiguration der Shell für interaktiven Betrieb gehört nicht dazu.
Dieses Image dient halt in erster Linie als Basis für service-spezifische Images - wenn ein Service mehr braucht, dann wird das halt im Service Layer dazuinstalliert im servicespezifischen Dockerfile. Alles unnötige ist da Ballast.
Ich habe das Standard-Debian-Paket genommen, konnte aber keine Pakete nachinstallieren ("apt" bricht da ab). Meine Erwähnung war nur, dass das Default-Image sich wie ein Debian Minimal anfühlt. Sei's drum, ich habe mir bei Hetzner für ne Stunde eine VM hochgezogen, alles gebaut, was ich brauchte und nun ist es fertig. Ich denke, das ist der bessere Weg.

Grüße,
Rolf
Timberwolf 3500XL, ID 1079, ETS6 (Home), zumeist MDT-Komponenten
Antworten

Zurück zu „Docker, portainer, VM“