Docker läuft rootless - Verständnisfragen zum weiteren Vorgehen offen

B3l3s3n3r-3H

Cadet 2nd Year
Registriert
Okt. 2018
Beiträge
23
Hallo,

nun ist wieder eine ganze Weile Zeit vergangen und ich habe mich erneut mit Docker befasst.
Docker konnte ich - lokal in einer VM - rootless installieren, so dass ich nun auch Images laden und Container starten kann.

Leider habe ich noch einige Fragen die für mein Verständnis noch offen sind, wo ich - für mich - keine verständliche Erklärung fand.
Die Anleitung der Docker Documentation sowie andere Tutorials (egal ob print oder Videos) halfen mir leider dabei auch nicht.

Es wäre daher nett, wenn es jemanden geben würde den ich diesbzgl. auch per PN anschreiben kann.
Oft sind es ja nur Kleinigkeiten die ich wissen bzw. erklärt bekommen müsste, da hilft es mir dann wenig, wenn ich - wie in folgendem Fall - es auf englisch lese, aber dennoch nicht weiß wozu es genau da ist bzw. was ich nun verwenden soll.
Beispiel:
https://docs.docker.com/engine/security/rootless/#client
Hier steht ich kann entweder
To specify the socket path using $DOCKER_HOST
oder
To specify the CLI context using docker context
"verwenden", aber es steht nicht dabei wann ich was nutzen sollte.
Für jemdnaden der sich mit Docker auskennt wird sowas logisch sein, wann was genutzt wird.

Weitere Themen dir mir nicht verständlich sind, sind u.a.
  • wie ich jetzt TLS einrichten könnte
  • weiteres Vorgehen um den Docker Damon ssicherer zu machen

In den meisten Fällen wird in allen Tutorials (print und Video) - auch neue aus 2021 - davon ausgegangen, dass docker als root läuft! Somit ist vieles für mich auch nicht umsetzbar/nutzbar, wenn docker rootless läuft.
 
ähm, in deinem Beispiel steht ja genau der Befehl dabei, den du ausführen musst?!

Ich habe Docker noch nie rootless betrieben, aber ich nehme an, das dienst dann dazu, dass der Docker Client, also der Befehl "docker" weiß, wie er mit dem rootless Docker-Host sprechen kann. Das kanns du mit den zwei beschriebenen Methoden machen :)

Einmal wird eine Umgebungsvariable gesetzt, den Pfad zur "docker.sock" "Datei" festgelegt, und das andere mal wird dem Docker Client "docker" gesagt dass er rootless arbeiten soll (worauf er wahrscheinlich Standardpfade durchsucht nach der "docker.sock". (wie man vielleicht merkt sprechen der Client und der Server mit der "docker.sock" "Datei" miteinander ... sieht aus wie ne Datei, ist aber ein Socket)

Bzgl. TLS: da dein docker nur im User-Context läuft dürfte der gar nicht von außen zu erreichen sein, und lokale Verbindungen mit TLS abzusichern ist glaube ich nicht nötig.

p.s. wenn du rootless docker geil findest kannst du dir auch mal Podman anschauen :)
 
LieberNetterFlo schrieb:
ähm, in deinem Beispiel steht ja genau der Befehl dabei, den du ausführen musst?!
Schon klar;), ich schrieb aber ja auch
B3l3s3n3r-3H schrieb:
aber es steht nicht dabei wann ich was nutzen sollte.
So wie ich das nämlich verstehe kann ich "entweder oder" nutzen, aber nicht beides, da beides nicht notwendig ist.


LieberNetterFlo schrieb:
Bzgl. TLS: da dein docker nur im User-Context läuft dürfte der gar nicht von außen zu erreichen sein, und lokale Verbindungen mit TLS abzusichern ist glaube ich nicht nötig.
Momentan habe ich das zu Testzwecken eben nur lokal. Nichts desto trotz würde ich das gerne wissen da ich es evtl. irgendwann mal nicht mehr nur lokal laufen lassen möchte.:)

LieberNetterFlo schrieb:
p.s. wenn du rootless docker geil findest kannst du dir auch mal Podman anschauen :)
Dafür gibt es noch weniger Dokumentation!:( Kommt somit nicht in Frage.
 
B3l3s3n3r-3H schrieb:
Es wäre daher nett, wenn es jemanden geben würde den ich diesbzgl. auch per PN anschreiben kann.
Naja. Ich weiß jetzt nicht, ob das der Sinn eines Forums ist. Technische Probleme sollten schon im Forum diskutiert werden. Das ermöglicht Dritten auch zu korrigieren, wenn jemand totalen Quatsch erzählt. Das ist also auch Schutz für Dich selbst.
 
  • Gefällt mir
Reaktionen: foo_1337 und snaxilian
Da ich schon etliche Videos gesehen habe und Tutorials dazu gelesen habe, habe ich schon viel Zeit dafür investiert so dass ich denke, dass ich "Quatsch" dann schon entlarven könnte.;)

Auch suche ich ja jemanden der sich damit auskennt und nicht jemanden der vermeintlich denkt er wüsste was.
Somit merkt man dann schon schnell ob jemand auch Ahnung hat und helfen kann.:)

Zudem kann und will ich nicht für jede Kleinigkeit das Forum nutzen müssen.:(

Das anfängliche Beispiel steht immer noch offen im Raum.
You need to specify either the socket path or the CLI context explicitly.

Back2Topic.;)
 
Völlig schnuppe, beides geht :) wie so oft unter Linux: der Benutzer hat die Wahl zwischen mehreren Alternativen.

via Environment Variablen könntest du es fest setzen (global oder für den Nutzer zb beim Login) und dann direkt den "docker" Befehl nutzen

Via dem Befehl musst du es jedes Mal wieder neu setzen wenn du dich zwischendurch mal ausloggst, nehme ich an :)

Bzgl dem remote Zugriff: ich würde den Docker nicht so via TCP "exposen", sondern die SSH Methode nutzen, dann kannst du den Zugriff mit Zertifikat absichern :)
 
B3l3s3n3r-3H schrieb:
aber dennoch nicht weiß wozu es genau da ist bzw. was ich nun verwenden soll.
Leider bin ich noch nicht wirklich schlauer geworden.:(
Wäre nett, wenn sich jemand melden würde der von Docker Ahnung hat.;)

Danke an die bisherigen Poster die versuchten zu helfen.;)

PS: Auch bin ich weiterhin auf der Suche nach jemanden der sich mit mir u.a. per PN zu Docker "austauscht" bzw. sein Wissen teilt.
 
B3l3s3n3r-3H schrieb:
Leider bin ich noch nicht wirklich schlauer geworden.:(

vielleicht fängst du vorne an und beschreibst was du vor hast ?

welchen host nutzt du, linux, windows, ...
welche docker willst du laufen lassen, fertige, selber welche erstellen, ...
Verwendungszweck ...

mit der einen rootless Frage verstehe ich zum Beispiel nicht was du eigentlich willst, wenn du einen crash Kurs in docker allgemein suchst, dazu gibt es zig Anleitungen, Videos ... da draußen (auch wenn du schon einige gesehen hast), wenn du gezielte Fragen zu einem Problem hast wirst du sicher mehr Antworten bekommen.
 
B3l3s3n3r-3H schrieb:
...aber dennoch nicht weiß wozu es genau da ist bzw. was ich nun verwenden soll.
Beispiel:
https://docs.docker.com/engine/security/rootless/#client
Hier steht ich kann entweder
To specify the socket path using $DOCKER_HOST
oder
To specify the CLI context using docker context
"verwenden", aber es steht nicht dabei wann ich was nutzen sollte.
Verstehe nicht warum die Frage nicht eindeutig ist?!:confused_alt:

Glaube auch nicht, dass ich hier, im Thread, weiter damit komme.:(

"Crash-Kurs" hab ' ich längst hinter mir, ich kann ja Images laden und Container starten.

Siehst du, du kannst nichts mit der Frage anfangen = falsche Person dafür?!:rolleyes:;)
 
B3l3s3n3r-3H schrieb:
Siehst du, du kannst nichts mit der Frage anfangen = falsche Person dafür?!:rolleyes:;)

da hast du wohl recht ...

B3l3s3n3r-3H schrieb:
Verstehe nicht warum die Frage nicht eindeutig ist?!:confused_alt:

die Antwort dazu steht bereits da oben und auch wie erwähnt in deinem link mit Erklärung, kannst beides nutzen, ein wann dies oder wann das gibt es hier nicht.

und am Ende bleibt immer noch stehen was du "absichern" willst bzw. was der Anwendungszweck ist, extern veröffentlichen kann ja auch vieles sein, den Docker damon, den laufenden Docker, was auch immer ... womit wir wieder am Anfang wären.

B3l3s3n3r-3H schrieb:
Siehst du, du kannst nichts mit der Frage anfangen = falsche Person dafür?!:rolleyes:;)

korrekt ;)
 
ich kapier auch nicht warum es eine Erklärung für zwei Wege geben muss 🤷‍♂️

Das ist wie ein Kreis ... ob du rechts oder links rum gehst, du kommst immer wieder zurück, die Strecke ist die selbe, nur einmal bist du rechts rum gelaufen und einmal links :)
 
Servus! Benutzt du die Docker CLI auf dem Host, auf dem auch der Daemon läuft? Wenn ja, nutze den Unix Socket. Wenn nein, wird der Context gebraucht. Bei letzterem ist aber weitere Vorarbeit notwendig.
 
Zurück
Oben