Forum: PC Hard- und Software Fragen zur Docker Nutzung


von Ducker (Gast)


Lesenswert?

Nachdem der Thread in Programmierungsforum von Trollen übernommen wurde, 
versuche ich mein Glück mal hier.

Ich habe nun ein wenig über Docker gelesen und ein paar Sachen sind mir 
nicht klar, bzw frage ich mich, ob das möglich ist.

Wenn ich daheim einen Linuxserver habe (ohne GUI, nur SSH), kann ich 
dann da zB einen Container mit Firefox bauen und den von einem anderen 
Rechner aus nutzen? Also zB per Remotedesktop von Windows aus verbinden 
und den Browser so nutzen als wäre er lokal installiert. Oder Chromium. 
Oder Thunderbird.

Angeblich soll ja auch wine in Docker gehen. Muß man da dann auch das 
Windowsprogramm mit in den Container packen (also pro Programm ein 
Container), oder macht man einen wine-Container, mittels dem man dann 
andere Programme startet (wenn ja, wie)? Geht da der Zugriff dann auch 
Remote (alles im LAN)?

Hintergrund der Frage ist, daß ich damit Programme "dockern" könnte, 
diese am Server ablege und von jedem Rechner aus Nutzen kann, unabhängig 
vom OS.
Klingt auch verlockend daß das Programm nach dem Restart des Containers 
wieder "frisch" ist.

von Hans (Gast)


Lesenswert?

Ducker schrieb:
> Wenn ich daheim einen Linuxserver habe (ohne GUI, nur SSH), kann ich
> dann da zB einen Container mit Firefox bauen und den von einem anderen
> Rechner aus nutzen?

Du brauchst weiterhin einen X-Server. Den kannst du grundsätzlich auch 
in Docker laufen lassen. Wenn du aber die Hardware nicht weitergibst, 
ist die Performance schlecht. Du kannst natürlich auch deinen lokalen 
X-Server an den (remote laufenden) Container weitergeben. Das ist aber 
ein Sicherheitsproblem, gerade wenn du unterwegs bist.

Ducker schrieb:
> Also zB per Remotedesktop von Windows aus verbinden
> und den Browser so nutzen als wäre er lokal installiert. Oder Chromium.
> Oder Thunderbird.

Grundsätzlich geht das, aber wie gesagt, du brauchst einen X-Server.

Ducker schrieb:
> Angeblich soll ja auch wine in Docker gehen. Muß man da dann auch das
> Windowsprogramm mit in den Container packen (also pro Programm ein
> Container), oder macht man einen wine-Container, mittels dem man dann
> andere Programme startet (wenn ja, wie)? Geht da der Zugriff dann auch
> Remote (alles im LAN)?

Das System im Container ist erstmal weitestgehend abgeschottet. Im 
Prinzip hast du drei Möglichkeiten:

1. Du legst das Programm mit in das Image
2. Du legst das Programm auf deine (lokale) Festplatte und hängst das 
Verzeichnis als Volume in den Container ein
3. Dein Container mountet eine SMB/NFS Freigabe und lädt das Programm 
von da aus

Ducker schrieb:
> Hintergrund der Frage ist, daß ich damit Programme "dockern" könnte,
> diese am Server ablege und von jedem Rechner aus Nutzen kann, unabhängig
> vom OS.

Das geht nur begrenzt. Das meinst du wahrscheinlich gerade nicht. Aber 
du kannst einen Windows Container nicht auf Linux ausführen und 
umgekehrt. Mit dem Umweg über Wine kann aber natürlich die Ausführung 
von Windows Programmen unter Linux funktionieren.

Ducker schrieb:
> Klingt auch verlockend daß das Programm nach dem Restart des Containers
> wieder "frisch" ist.

Manchmal möchtest du das ja gar nicht. Vielleicht, weil du Favoriten 
oder die Chronik im Browser behalten willst. Dann kannst du dein 
Dateisystem als Volume einhängen, bleibt dann aber nicht mehr "frisch".

Ducker schrieb:
> Nachdem der Thread in Programmierungsforum von Trollen übernommen wurde,
> versuche ich mein Glück mal hier.

Ja, die sind echt nervig.

von Ducker (Gast)


Lesenswert?

Vielen Dank für die Erklärungen!

Hans schrieb:
> Du brauchst weiterhin einen X-Server. Den kannst du grundsätzlich auch
> in Docker laufen lassen. Wenn du aber die Hardware nicht weitergibst,
> ist die Performance schlecht. Du kannst natürlich auch deinen lokalen
> X-Server an den (remote laufenden) Container weitergeben. Das ist aber
> ein Sicherheitsproblem, gerade wenn du unterwegs bist.
D.h. ein NAS was auch Docker kann wäre eine schlechte Anschaffung, weil 
ich dort wahrscheinlich keinen X installieren kann, sondern den auch 
dockern müßte was aber auf die Leistung schlägt?

> 3. Dein Container mountet eine SMB/NFS Freigabe und lädt das Programm
> von da aus
Das klingt für mich am praktikabelsten

> Das geht nur begrenzt. Das meinst du wahrscheinlich gerade nicht. Aber
> du kannst einen Windows Container nicht auf Linux ausführen und
> umgekehrt. Mit dem Umweg über Wine kann aber natürlich die Ausführung
> von Windows Programmen unter Linux funktionieren.
Die Container sollen nur am Linuxserver laufen; andere Rechner greifen 
dann nur remote darauf zu.

> Manchmal möchtest du das ja gar nicht. Vielleicht, weil du Favoriten
> oder die Chronik im Browser behalten willst. Dann kannst du dein
> Dateisystem als Volume einhängen, bleibt dann aber nicht mehr "frisch".
Wenn ich es richtig verstehe, kann ich nur einzelne Dateien in den 
Container rein- (bzw raus-) mounten. Bei Firefox die Bookmarksdatei, 
oder die (glaube ich) places.sqlite.

von Hans (Gast)


Lesenswert?

Ducker schrieb:
> D.h. ein NAS was auch Docker kann wäre eine schlechte Anschaffung, weil
> ich dort wahrscheinlich keinen X installieren kann, sondern den auch
> dockern müßte was aber auf die Leistung schlägt?

Das wäre wahrscheinlich tatsächlich nicht wirklich sinnvoll, da du bei 
dem NAS oft auch eingeschränkt bist, was das Durchreichen von Hardware 
angeht bzw. du die Hardware auch gar nicht hast. Ein NAS ist ja eher 
Headless und oft gar keine Grafik vorgesehn. Da ist aber natürlich auch 
die Frage, inwiefern Performance wichtig ist. Bei einem Webbrowser 
solltest du schon Hardwarebeschleunigung haben. Ein Mailclient läuft 
auch ohne ganz gut.

Ducker schrieb:
>> 3. Dein Container mountet eine SMB/NFS Freigabe und lädt das Programm
>> von da aus
> Das klingt für mich am praktikabelsten

Dazu musst du allerdings das Image selbst erstellen oder ein 
vorgefertigtes Image anpassen.

Ducker schrieb:
> Wenn ich es richtig verstehe, kann ich nur einzelne Dateien in den
> Container rein- (bzw raus-) mounten. Bei Firefox die Bookmarksdatei,
> oder die (glaube ich) places.sqlite.

Genau. Du kannst entweder ganze Verzeichnisse oder einzelne Dateien 
mounten.

von Stefan F. (Gast)


Lesenswert?

Ducker schrieb:
> Wenn ich daheim einen Linuxserver habe (ohne GUI, nur SSH), kann ich
> dann da zB einen Container mit Firefox bauen und den von einem anderen
> Rechner aus nutzen?

Kann man, aber das ist nicht der Sinn und Zweck von Docker. Das geht 
ohne Docker deutlich einfacher.

Mit oder ohne Docker, in beiden Fällen muss der X-Server muss auf dem 
Rechner mit dem den Bildschirm laufen. Das Anwendungsprogramm (z.B. 
Firefox) sendet seine grafischen Ausgaben übers Netzwerk an den 
X-Server.

Auf der Arbeit nutze ich einen Linux PC am Arbeitsplatz (wäre auch mit 
Windows machbar). Mein Desktop PC ist der X-Server. Per ssh logge ich 
mich auf einem Server im Rechenzentrum ein und führe Kommandos aus. Wenn 
ich auf dem Server ein grafisches Programm starte, dann erscheint dessen 
Fenster auf meinem Bildschirm. Und natürlich reagiert das dann auch auch 
meine Tastatur/Maus Eingaben.

Umleitung von Multimedia (Audio, Video) ist da aber nicht mit drin. 
Entsprechend kann ich einen Web Browser auf diese Art nur eingeschränkt 
nutzen.

Zudem laufen Programme mit Pixe-lBasierter Ausgabe sehr träge. Das 
betrifft alle Web Browser und die meisten Java Programme, da dort das 
gesamte Fenster ein großes generiertes Bild ist. Anwendungen mit nativen 
Widget basierten Dialogen laufen hingegen deutlich flüssiger, weil sie 
ihre Bilder aus geometrischen Figuren (Linien und Flächen) zusammen 
setzen.

von Hans (Gast)


Lesenswert?

Stefan F. schrieb:
> Zudem laufen Programme mit Pixe-lBasierter Ausgabe sehr träge. Das
> betrifft alle Web Browser und die meisten Java Programme, da dort das
> gesamte Fenster ein großes generiertes Bild ist.

Und das ist eben einer der Gründe, aus denen du kein X11 Forwarding 
willst.

von Andreas D. (rackandboneman)


Lesenswert?

"Du kannst natürlich auch deinen lokalen
X-Server an den (remote laufenden) Container weitergeben. Das ist aber
ein Sicherheitsproblem, gerade wenn du unterwegs bist."

Deswegen ist es seit einer Ewigkeit Stand der Technik das X11 Forwarding 
von SSH zu nutzen und nicht den direkten Weg über Port 
6000+Displaynummer zu gehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.