Entfernte Docker Container zentral verwalten

  Norbert Rüthers   Lesezeit: 5 Minuten  🗪 1 Kommentar

Eine bequeme Lösung um verstreute Docker Container mit einer zentralen Portainer Instanz zu verwalten

entfernte docker container zentral verwalten

Der ein oder andere hat vielleicht mehrere Rechner auf denen Docker-Container laufen. Dass man diese Container mit Portainer wunderbar verwalten kann, habe ich in einem früheren Artikel bereits beschrieben.

Wenn man jedoch wie ich mehrere Rechner hat, auf denen Dienste über Docker laufen ist es zwar möglich, aber wenig komfortabel auf allen Rechnern auch Portainer zu installieren. Wer will sich schon auf jedem einzelnen Rechner anmelden, wenn es sich auch vermeiden lässt.

Eine bessere Möglichkeit stellt ein Portainer Agent dar. Dabei handelt es sich ebenfalls um einen Docker-Container, der aber lediglich dazu da ist eine Verbindung zu einer über gelagerten Portainer Instanz herzustellen.

Wir müssen den Agenten lediglich auf dem zu verwaltenden Host starten. Der Portainer Agent bildet die Schnittstelle vom Portainer zum Docker Dienst des zu verwaltenden Hosts. Die Master Portainer Instanz kann sich auf jedem der Rechner befinden oder auch auf einem Einplatinencomputer wie dem Raspberry Pi.

Einrichten lässt sich der Portainer Agent wie folgt:

docker run \
  -d \
  -p 9001:9001 \
  --name portainer_agent \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/lib/docker/volumes:/var/lib/docker/volumes \
  portainer/agent

In diesem Fall wird der Agent jedes Mal (always) automatisch neu gestartet. Es wird der Port 9001 verwendet und man sollte im Vorfeld darauf achten das dieser nicht von einem anderen Dienst verwendet wird. Wenn ja einfach im Script die linke der beiden "9001" abändern.

Nach der Installation kann man auch gleich auf der Hauptinstanz von Portainer damit beginnen den oder die Agenten einzubinden. In früheren Versionen von Portainer hiess es Endpoints nun heisst der Punkt Environments

Also unter "Settings" den Punkt "Environments anwählen.

Danach auf Environment hinzufügen gehen

Portainer Agent erscheint i. d. R. automatisch vorgewählt

Der Name kann beliebig gewählt werden aber IP und Port müssen ggf. angepasst werden.

Danach erscheint unser neuer Dienst in der Auflistung:

Nun kann man sich verbinden und alle Einstellungen vornehmen die man auch mit einer lokalen Instanz von Portainer machen kann.

Der Vollständigkeit halber muss noch erwähnt werden das es auch möglich ist sich der Docker-API zu bedienen. Eine offene Docker-API bildet jedoch einen potenziellen Angriffspunkt. Jeder könnte diese Verbindung übernehmen. Das ist mit dem Portainer Agent nicht möglich. Beim Einrichten eines neuen Endpoints tauschen Portainer und der Portainer Agent ein Zertifikat aus. Danach sind Verbindungen nur noch mithilfe dieses Zertifikats möglich.

Viel Spass

Mehr zum Thema in der Portainer Doku:

https://docs.portainer.io/

Tags

Docker, Portainer, SBC`s, server

Rüti
Geschrieben von Rüti am 26. September 2023 um 07:36

Wie könnte ich die Verbindung resetten, (Zertifikat löschen?) damit man den Server wechseln könnte.