Im Terminal des Docker keine Sudo-Befehle

Begonnen von Superposchi, 16 November 2020, 13:58:27

Vorheriges Thema - Nächstes Thema

Superposchi

#15
Backups werden gott sei dank täglich gemacht.
Hab gerade noch mal nach geschaut, im Contaier under dem dazugehörigen Image steht immer fhem/fhem als Quelle.

Kannst du mir eventuell kurz den Unterschied zwischen arm32v5 und arm32v7 erklären

Habe gerade mal die Installationsanleitung angefangen durchzuschauen und kann schon mal sagen das die Rückmeldung auf das uname -m "armv7l" lautet.

Superposchi

Runterladen und Entpacken hat geklappt, aber ich bekommen das Archive nicht verschoben mit den Befehlen
cd node-v6.11.1-linux-armv7l/
sudo cp -R * /usr/local/


Ich kann im docker immer nur einen Einzelbefehl absetzen und keine direkte ssh-Verbindung aufbauen.
Der erste Befehl wird mit Code 126 und der zweite mit Code 2 Beendet.

Kann ich das irgendwie auch direkt über einen Explorer-Zugang kopieren?

kadettilac89

Zitat von: Superposchi am 18 November 2020, 10:29:34
Runterladen und Entpacken hat geklappt, aber ich bekommen das Archive nicht verschoben mit den Befehlen
cd node-v6.11.1-linux-armv7l/
sudo cp -R * /usr/local/


Ich kann im docker immer nur einen Einzelbefehl absetzen und keine direkte ssh-Verbindung aufbauen.
Der erste Befehl wird mit Code 126 und der zweite mit Code 2 Beendet.

Kann ich das irgendwie auch direkt über einen Explorer-Zugang kopieren?

Ich weiß nicht was du mit Explorer-Zugang meinst. Wenn du direkt im Docker schreiben kannst ... ja. Achte nur darauf, die richtigen Rechte zu setzen.

Du erhälst den Fehler weil du vermutlich im Falschen Verzeichnis "sitzt" wenn der Befehl ausgeführt wird.

Tipp;: Installiere dir Portainer, damit kannst du direkt im Docker per Shell arbeiten statt Files rumzuschaufeln

https://hub.docker.com/r/portainer/portainer

Ist ein grafisches "Docker-Verwaltungs Tool". Minimalinstallation:   
- docker pull portainer/portainer
- Port 8000 - 8000  und Port 9000 - 9000 mappen.

Die Weboberfläche ist dann unter Port 9000 erreichbar.

kadettilac89

... du hast ja 32bit, ich glaube Portainer gibt es nur 64bit. Teste es mal ...

Superposchi

#19
Portainer habe ich installiert, komme ich aber nicht mit zurecht.
Mir ist es jedenfalls bislang noch nicht gelungen über Portainer auf den Fhem Docker zuzugreifen.
Im Image wird nur Portainer/Portainer angezeigt. Kann nicht erkennen ob es eine 32bit oder 64bot Version ist.

Mit explorer-Zugang meinte ich, dass ich das Startverzeichnis /opt/fhem auf ein pysisches Laufwerk gemappt habe und darauf ganz normal mit dem Windows-Explorer zugreifen kann.

Wernieman

Zitat von: Superposchi am 18 November 2020, 10:50:39
Mit explorer-Zugang meinte ich, dass ich das Startverzeichnis /opt/fhem auf ein pysisches Laufwerk gemappt habe und darauf ganz normal mit dem Windows-Explorer zugreifen kann.

Davor würde ich Dir sofort abraten. Gibt "nur" Berechtigungsprobleme .... und aktuell solltest Du die Problemfälle minimieren anstatt Dir zusätzliche Probleme reinzuholen.

ZitatIch kann im docker immer nur einen Einzelbefehl absetzen ...
Verstehe Dich nicht. Wie greifst Du überhaupt darauf zu?

Zitatund keine direkte ssh-Verbindung aufbauen.
Docker IST NICHT eine VM. Innenhalt eines Docker-Containers sollte nur ein Programm laufen, hier also FHEM. ssh ist dagegen ein 2. Deamon ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

kadettilac89

#21
explorerverzeichnis ... das bringt sowieso nichts, da die npm-files nicht in das Fhem-verzeicnnis kommen. Wie Wernieman schon sagte, spiele da nicht weiter rum. du holst dir (vor allem als Anfänger) mehr Probleme als Lösungen.

Nur einzelne Befehle ... du machst docker exec für jeden einzelnen Befehl, richtig?

Damit du shell-Befehle sauber ausführen kannst solltest du erstmal direkt in den Container


docker exec -it <container name> /bin/bash

Damit hast du dann eine "saubere" shell und da sind die Befehle dann auch erfolgreich ... ansonsten, Fehlermeldungen posten mit mehr input was du genau gemacht hast / machen willst

Du brauchst erstmal keine SSH, sonsten einen shell. Die bekommst du mit dem docker exec command oben

Wernieman

@kadettilac89

Leider Wissen wir nicht, wie er überhaupt auf seine NAS kommt. Eventuell geht er nicht über eine shell, sondern eine http-Verbindung .. deshalb meine Grundsätzliche Frage, wie er sich überhaupt verbindet.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Superposchi

Wie ich darauf zugreife ist einfach erklärt.
Ich rufe in der NAS-Oberfläche die Container-Station auf in der die Docker verwaltet werden (Screenshot #1).
Dort rufe ich den Fhem-Docker (roter Kreis) auf worauf sich der Dialog auf screenshot #2 öffnet.
hier habe ich die Möglichkeit mit dem Butten "Terminal" (roter Kreis) das auf dem screenshot eingeblendete Dialogfenster aufzurufen.
Damit befinde ich mich als root-Benutzer quasi in einer Tunnelverbindung wie beim ssh- oder telnet-Protokoll.

In diesem Dialogfenster kann ich immer einzelne Befehle absetzen. Der Befehl wird direkt in die Aufgabeaufforderung hineingeschrieben und in einem neuen Browserfenster abgearbeitet.
Allerdings wird hier kein sudo oder npm akzeptiert.

Der Befehl "docker exec -it <container name> /bin/bash" wird mit Fehlercode 126 und folgender Ausgabe abgebrochen:
OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"docker\": executable file not found in $PATH": unknown   

Wernieman

Genau das dachte ich mir ....... und "docker exec" wird nicht funktionieren, da Du schon direkt im Container bist ...

Eine echte ssh-Verbindung zur NAS hast Du nicht? Dort würde dann (eigentlich) "docker exec" funktionieren ...

Mir fallen da mehrere Lösungsmöglichkeiten ein, aber die möchte ich einem Anfänger (nicht negativ gemeint) nicht zumuten.

Hast Du folgendes, von kadettilac89 Vorgeschlagen, mal gemacht?
Zitat von: kadettilac89 am 18 November 2020, 07:56:42
Frage 2:
Hast du mal die empfohlene Installationsoption getestet? Du willst Package "gassistant-fhem" installieren wie ich das verstehe.

https://github.com/fhem/fhem-docker/#add-custom-packages


Add custom packages
You may define several different types of packages to be installed automatically during initial start of the container by adding one of the following parameters to your container run command:

-e NPM_PKGS="package1 package2"

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Superposchi

Nein, habe ich bisher noch nicht, da ich nicht verstanden habe wie und wo ich die Commandos absetzen muss.
Da wollte ich noch nachfragen, aber der Chat hat sich zu schnell entwickelt.

Sind das Befehle für das Terminal-Fenster?

P.S. Eine echte ssh-Verbindung habe ich nicht. Habe mit Putty versucht auf den Container zu kommen, aber das funktioniert nicht. Komme lediglich auf das NAS direkt, aber das nützt mir ja nicht viel.

kadettilac89

Zitat von: Superposchi am 18 November 2020, 12:31:46
Nein, habe ich bisher noch nicht, da ich nicht verstanden habe wie und wo ich die Commandos absetzen muss.
Da wollte ich noch nachfragen, aber der Chat hat sich zu schnell entwickelt.

Sind das Befehle für das Terminal-Fenster?

P.S. Eine echte ssh-Verbindung habe ich nicht. Habe mit Putty versucht auf den Container zu kommen, aber das funktioniert nicht. Komme lediglich auf das NAS direkt, aber das nützt mir ja nicht viel.

welche befehle? "-e NPM_PKGS="package1 package2"" ??? Nein, das sind Parameter für deinen Docker Container. (-e = environment). Das musst du irgendwo in deiner grafischen Oberlfäche eintragen. In dem Zuge kannst auch mal das Image "fhem/fhem-arm32v7_linux" eintragen statt dem default. Mit neuen -e Parameter wird der Containder sowieso neu aus dem Image gezogen.

Ansonsteten, ssh auf NAS-Host reicht, ist nur die Frage ob default docker libraries verwendet werden, oder was eigenes.

Wenn das andere Image mit dem -e Parameter nichts hilft dann zeige mal der Befehl unten auf dem Host (dem NAS) ausgibt

docker -ps

Superposchi

Das einzige wo ich was am Docker einstellen kann sind Umgebungsvariablen (siehe Screenshot #3).
Dort kann ich aber weder das Image wechseln, noch irgendwelche Parameter hinzufügen.

Das einzige wo ich aktiv etwas hinzufügen kann ist der Reiter Gerät (Screenshot #4).
Doch dort lässt sich nur aus der Liste auswählen und keine Parameter hinzufügen.

docker -psKann ich erst probieren wenn ich direkten Zugriff auf das NAS habe.

kadettilac89

#28
Zitat von: Superposchi am 18 November 2020, 13:15:51
Das einzige wo ich was am Docker einstellen kann sind Umgebungsvariablen (siehe Screenshot #3).


Environment englisch für Umfeld / Umwelt / Umgebung. Das ist die Stelle wo das rein muss.

Das Image musstest du ggf. beim Neuerstellen irgendwo angeben. Da musst du die Doku prüfen. Kann sein, dass du es später nicht mehr ändern kannst (auch wenn das blöd ist). In dem Fall musst du löschen + neu anlegen.

Superposchi

Stimmt, das kann ich nur beim Erstellen, aber das geht nicht zwischen Tür und Angel. Muss ja dann auch alle Device entsprechend neu anlegen, zumindest die, die gebraucht werden.

Hab inzwischen auch das Image von arm32v7 gezogen. Soll ich dann direkt davon den neuen Container erstellen, oder sind sonst keine Vergleichsmöglichkeiten gegeben?

Muss ich bestimmte Namen bei den jeweiligen Parametern angeben oder spielt die Benennung keine Rolle?