Skip to content

Docker - Portainer

Linux
  • Meine Aktivitäten mit Docker Containern, sind bis heute recht übersichtlich. Da wären

    Im ersten Link habe ich mich mit einer Dockerinstallation auf einem ROCKPro64 beschäftigt. Im zweiten Link habe ich aufgeschrieben, wie ich eine Dockerinstallation von checkmk auf meinem Haupt-PC aufgesetzt habe usw. Das nutze ich bis heute so, zur Überwachung meiner Server.

    Jetzt war ja letztes Wochenende wieder Chemnitzer Linux Tage (CLT), leider nur online 😞 Ein Wochenende wo ich einigen Vorträgen gelauscht habe und mich auch wieder etwas intensiver mit Open Source Programmen beschäftigt habe. Es ist immer wieder spannend, was es alles so gibt....

    Beim Stöbern und Ausprobieren, bin ich über das Tool Portainer gestolpert. Portainer ist eine Webanwendung um die Dockercontainer zu administrieren.

    Installation

    docker volume create portainer_data
    docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
    

    Quelle: https://documentation.portainer.io/v2.0/deploy/ceinstalldocker/

    Wir erzeugen einen dauerhaften Speicherort (Volumes) portainer_data
    Danach starten wir den Docker Container. Es werden zwei Ports zugewiesen. Dazu folgendes.

    By default, Portainer will expose the UI over the port 9000 and expose a TCP tunnel server over the port 8000. The latter is optional and is only required if you plan to use the Edge compute features with Edge agents.

    Ok, wir finden das UI auf dem Port 9000

    Webinterface

    http://192.168.3.213:9000/#!/home
    

    bf8b2260-1d1f-4685-8e9d-ea7fd40fe7b1-image.png

    Hier sieht man die Übersicht. Einmal meinen Haupt-PC und einen ROCKPro64 auf dem Docker läuft. Wie man den ROCKPro64 einbindet erläutere ich später.

    Übersicht der Container, die auf dem Haupt-PC vorhanden sind und der Status usw.

    7615e2cb-062e-437f-b1a0-833112f02113-image.png

    Was man alles mit Portainer machen kann, findet man in der Doku.

    Endpoint

    Was ich gelernt habe und extrem spannend finde ist, das man auch entfernte Rechner ganz einfach einbinden kann und dann dort die Docker Container installiert, startet, stopped usw.

    Installation auf dem Endpoint (Server)

    Auf dem entfernten Rechner, muss ein Agent installiert werden. Das ist auch einfach nur ein Docker Container.

    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
    

    Im Webinterface des steuernden Rechners, erstellt man dann einen Endpoint.

    7d358bbd-da25-4d54-ba48-b476329689bb-image.png

    Nun kann man aus dem Webinterface heraus mit den Docker Containern spielen 🙂

    f6ee69ae-9249-4ceb-9b0a-8f6b78b610fb-image.png

    Wir starten mal den Nginx Server.

    46502e47-293f-4de7-ada2-94a84d708950-image.png

    Der Nginx Server läuft auf dem Port 49156. Das ist im Container alles einstellbar.

    123570bc-bf33-49fd-9c6f-975d497a9e7b-image.png

    Ich arbeite gerne auf der Konsole, aber das ist eine echte Erleichterung da ich im Docker Universum nicht so bewandert bin. Hier kann man schnell mal was ändern und ausprobieren usw. Viel kaputt machen kann man eigentlich auch nicht. Tolle Sache um mal schnell was auszuprobieren.

    Und ein Projekt habe ich schon im Kopf, was ich evt. auch mal produktiv einsetzen werden, vermutlich am Anfang aber nur als Testsystem. Dazu soll mir dann ein Server in der Hetzner Cloud dienen, aber dazu wird es dann sicherlich einen neuen Beitrag geben.

    Was fehlt hier? Das Thema

    Sicherheit

    Container sind für mich Neuland. Man sollte sich zu dem Thema einlesen. Das das Webinterface über TLS laufen muss, muss ich hier nicht erwähnen. Bei mir lokal ist das nicht das große Problem, im Internet aber mit Sicherheit! Das die Kommunikation zum Agent abgesichert werden muss, sollte auch klar sein. Mir fällt dazu ein Wireguard Tunnel ein!?

    Die Container Sicherheit ist auch ein sehr breites Thema. Auch dazu muss man sich mit Sicherheit intensiv beschäftigen, bevor man einen Server mit Docker ans Netz hängt!

  • Nachdem ich jetzt ein wenig gespielt habe, bin ich über die Funktion Stacks gestolpert. Heißt auf deutsch Stapel. Ok, dann probieren wir das mal.

    Voraussetzung

    Für Stacks braucht man das Tool docker-compose

    apt install docker-compose
    

    Danach kann man die Stapel deployen.

    Textdatei erstellen

    Für das Deployen braucht man eine Textdatei namens docker-compose.yml Der Portainer nimmt uns das ab, und macht ein Edit-Fenster auf, wo wir den Text einfügen können.

    compose.png

    In diesem Beispiel erstellen wir zwei Container.

    • mariadb
    • adminer

    Ich denke, wer so was schon mal konventionell installiert hat, weiß worum es geht. Den Stack kann man dann deployen. Dann werden diese Container installiert und gestartet.

    Kontrolle

    adminer.png

    Ich kann mich noch gut dran erinnern, wie ich einen Adminer auf einem Server installiert habe. Das hat was länger gedauert 😉 Hier klick, fertig.

    Migrate / Duplicate

    Und jetzt wird es spannend 😁

    fb5a8a8f-7ffd-4468-bb54-0bf667c61504-image.png

    Man kann den erstellten Stack ganz einfach migrieren. Dazu wähle ich den vorhanden Stack aus, wähle einen Endpoint und klicke auf Migrate und das wird alles auf dem Endpoint installiert und gestartet. Dauerhaft abgelegte Daten ziehen nicht mit um, wenn ich das richtig verstanden habe. Da muss man sich selber drum kümmern.

    Erkenntnisse

    Man kann so einen Stack ganz bequem lokal konfigurieren und schiebt das ganze dann einfach auf den produktiven Server, Mir dämmert so langsam, was man damit richtig gut anstellen kann. Ein ganz spannendes Thema, was mich vermutlich noch viele Stunden meiner Freizeit kosten wird. Zum Glück habe ich da immer sehr viel Spaß bei. Ok, ich bin ehrlich, wenn was nicht geht kann einen das auch schon mal ärgern. Das kommt aber die letzten Jahre immer seltener vor 😉

    Sicherheit

    Bitte beachten, ich betrachte zum jetzigen Zeitpunkt nicht unbedingt die Sicherheitsaspekte. Das wächst dann mit der Zeit. Für den produktiven Einsatz habe ich aktuell nichts am laufen. Ich hoffe aber, das das bald der Fall ist. Liest hier zufällig ein Dockerspezialist mit? Gute Lesetipps gesucht!

    • Checkliste Sicherheit Docker Container
    • Worauf muss man achten?
    • Gute Links werden gebraucht..
  • Dann grabe ich das mal wieder aus 😉

    Bedingt durch den Wegfall meines Proxmox, musste ich mir Gedanken darüber machen, wie ein paar Dienste auch weiterhin laufen sollen. Um mal die zwei wichtigsten zu nennen.

    • checkmk
    • DokuWiki

    Diese sollen später, wenn der zweite NanoPi R5S aus China da ist, dort laufen. Da der aber mit der Schneckenpost kommt, kann man ja in der Zwischenzeit mal wieder mit Docker spielen.

    Ich erinnerte mich daran, das checkmk eine sehr gute Anleitung hat, so das ich das mal wieder ausprobierte. Klappte einwandfrei. Dann erinnerte mich an Portainer und dachte mir, das probiere ich mal wieder aus 🙂

    1d2dc9b3-ad71-45c5-b552-72c88a1bf773-grafik.png

    Ich hatte übrigens die Endpoints gesucht und nicht gefunden, die heißen jetzt Environments. Auf dem Bild ist noch keiner eingerichtet.

    4bdbf196-1b36-4e65-94d0-0e56daa473bf-grafik.png

    Irgendwie ist das wirklich richtig gute Software. Ich mag den Portainer und auch als selbst ausgebildeter ITler 😉 kommt man damit sehr schnell ganz gut zurecht.

    Ja, man kann die ganzen Docker Befehle auch über die Konsole eingeben, was ich normalerweise auch mit ganz vielen Dingen mache, aber das macht hier einfach Spaß. Man hat auch schnell einen guten Überblick was wo läuft usw.

    Wer so was sucht, einfach mal ausprobieren. Klare Empfehlung von mir.

  • FrankMF FrankM hat am auf dieses Thema verwiesen

  • NodeBB - v3.7.0

    NodeBB
    1
    0 Stimmen
    1 Beiträge
    51 Aufrufe
    Niemand hat geantwortet
  • KDE neon 6.0

    Linux
    2
    0 Stimmen
    2 Beiträge
    111 Aufrufe
    FrankMF

    Heute mal in die bestehende Installation meine Intel ARC A580 GPU eingesteckt. Wollte mal schauen ob das gut klappt. Da die Treiber ja im Kernel vorhanden sind, habe ich keinerlei Probleme erwartet. Und so war es auch. Neustart und fertig. Im BIOS natürlich vorher umgestellt, das sie auch benutzt wird, habe ja einen AMD Prozessor mit eingebauter GPU im CPU-Sockel stecken.

    Screenshot_20240303_101728.png

    Die Wechselfunktion (oben links in der Ecke) um die virtuellen Desktops zu wechseln und zu bearbeiten ist richtig gut geworden.

    Screenshot_20240303_101809.png

    Und auch ein Ärgernis auf meiner KDE Plasma Installation scheint weg zu sein. Wenn ich ein Programm zur Arbeitsfläche hinzugefügt hatte, wurde die Position immer irgendwann zurückgesetzt. Beispiel, Icon des Programmes rechts unten abgelegt. Irgendwann tauchte es dann in der normalen Ansicht (alphabetisch) sortiert, links oben, wieder auf. Sehr nerviger Bug.

  • Docker & Redis Datenbank

    Verschoben Linux
    2
    0 Stimmen
    2 Beiträge
    152 Aufrufe
    FrankMF

    @FrankM sagte in Docker & Redis Datenbank:

    save 60 1
    #save 900 1
    save 300 10
    save 60 10000

    Hier kann man auch noch schön sehen, wie ich gekämpft habe, bis ich mal eine dump.rdb gesehen habe. Auch irgendwie logisch, das ich nie eine gesehen hatte, wenn man weiß das

    save 900 1

    bedeutet, das er alle 900 Sekunden speichert, wenn mindestens eine Änderung vorhanden ist. Das kann dann schon was dauern. Ich habe das dann mal verkürzt, damit ich schneller ein Ergebnis habe.

    save 60 1

    Das brachte mich dann dem Ziel näher. Danach konnte ich die dump.rdb auch finden.

    Bitte keine Redis DB ohne Passwort laufen lassen!
  • Portainer - Python3.10

    Linux
    1
    0 Stimmen
    1 Beiträge
    53 Aufrufe
    Niemand hat geantwortet
  • Portainer - Entferntes System einbinden

    Linux
    1
    0 Stimmen
    1 Beiträge
    72 Aufrufe
    Niemand hat geantwortet
  • Armbian Images

    Armbian
    1
    0 Stimmen
    1 Beiträge
    256 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    3 Beiträge
    392 Aufrufe
    FrankMF

    Gestern mal das Ganze mit einem Cinnamon Desktop ausprobiert. Eine verschlüsselte Installation auf eine PCIe NVMe SSD. So weit lief das alles reibungslos. Der Cinnamon Desktop hat dann leider keine 3D Unterstützung. Sieht so aus, als wenn keine vernünftigen Grafiktreiber genutzt würden. Da ich auf diesem Gebiet aber eine Null bin, lassen wir das mal so. Außerdem mag ich sowieso keine Desktops auf diesen kleinen SBC. Da fehlt mir einfach der Dampf 😉

    Gut, was ist mir so aufgefallen?

    Unbedingt die Daten des Daily Images erneuern, keine alten Images nutzen. Ich hatte da jetzt ein paar Mal Schwierigkeiten mit. Da das ja nun keine Arbeit ist, vorher einfach neu runterladen und Image bauen.

    Warum zum Henker bootet eigentlich. außer meiner Samsung T5, nichts vom USB3 oder USB-C Port?? 👿

  • IPFire Orange DHCP

    Verschoben Linux
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet