Weitere Docker-Instanz in Portainer einbinden

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.248
Punkte für Reaktionen
912
Punkte
174
Hallo Zusammen,

ich habe auf der DS eine weitere VM (ubuntu-server) zu laufen, auf dem Docker installiert ist.
Die Frage ist jetzt: Wie kriege ich diesen jetzt in Portainer eingebunden?

Die Konfiguration der Enviroments ist ja beinah selbsterklärend. Hier findet man noch eine Anleitung:
https://docs.portainer.io/v/ce-2.9/admin/environments/add/docker

Ich scheitere aber bereits mit Option 1: Connecting without TLS. Vermutlich fehlt hier vorneweg ein Schritt. Ich kann mir beinahe nicht vorstellen, dass das ohne Angabe eines Systemusers funktionieren kann.

Hat das Ganze schon jemand hinbekommen?
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
Ich scheitere aber bereits mit Option 1: Connecting without TLS. Vermutlich fehlt hier vorneweg ein Schritt. Ich kann mir beinahe nicht vorstellen, dass das ohne Angabe eines Systemusers funktionieren kann.
Damit das funktionieren kann, musst Du die Docker-Engine vom Ubuntu Rechner auch an den TCP-Port binden. Von Haus aus wird die nur gegen docker.sock gebunden.

Warunung: der Port darf in der Form so NICHT über das Internet erreichbar sein - jeder der über den Port stolpert kann die Docker Engine sonst auch steuern!
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.248
Punkte für Reaktionen
912
Punkte
174

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.248
Punkte für Reaktionen
912
Punkte
174
@haydibe rein interessenhalber: Gibt es denn überhaupt eine halbwegs sichere Lösung, um die Instanz über das Netz verfügbar zu machen? (Mal unabhängig von VPN) Die Einbindung über den Portainer agent ist ja hier genauso (un)sicher, wie das direkte Ansprechen über die Docker-API.

Nur Azure bietet hier ja zusätzlich die Möglichkeit einen Authentication key etc. einzubinden.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
https://docs.docker.com/engine/security/protect-access/

Allerdings muss ich gestehen habe ich das nie verwendet, da ich meine Kisten im selben Netzwerk habe (Homelab/AWS).
Sprich: ich hab es nie wirklich gebraucht.

Wobei ich bei AWS eigentlich auch je nach Komplexität des Stacks entweder EKS oder ECS verwende und die Deployments über Terraform mache.. Sprich: alles anders.

Kleiner Tipp zu den Zertifikaten: achte darauf nicht nur den CN, sondern auch den SAN zu setzen, da streng genommen CN für die Überprüfung der URL seit 2017 deprecated ist für https, docker verwendet hier im Grunde ja auch nur den altbekannten mTLS Mechanismus.

Gab es bei Portainer nicht einen Edge-Agent den mal stattdessen zur Anbindung nutzen kann? Portainer-CE setzt per Default doch mittlerweile auch auf HTTPS und müsste entsprechend auch sicher sein. mTLS ist natürlich sicherer.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
Ich habe gerade mal nachgesehen: beim Edge-Agent muss Portainer von aussen über Port tcp/8000 und http(s)/9000 erreichbar sein, da sicher der Edge-Agent selbst bei Portainer anmeldet. Es wird einem ein `docker run` Befehl gezeigt mit einer individuellen EDGE_ID und einem individuellen EDGE_KEY. Sprich es gibt eine Art von Authentifizierung, so dass der 9000er Port besser nur über https zu erreichen sein sollte..

Zum Thema https fällt mir aus meiner Erinnerung ein, dass es zumindest damals (keine Ahnung ob es immer noch so ist) ein Problem mit Reverse-Proxies gab, wenn Portainer neu gesartet wird... vielleicht ist das ja mittlerweile behoben, ist schon ein paar Jahre her das ich Portainer das letzte mal wirklich benutzt habe.
 
  • Like
Reaktionen: Ulfhednir


 

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