Skip to content

Portainer - Entferntes System einbinden

Linux
  • Ich habe ja hier auch schon das ein oder andere Mal über Portainer berichtet. Immer wenn ich mit Docker Containern spiele, stolpere ich über dieses Tool.

    Hier mal das Ende am Anfang. Hier sieht man die zwei eingebundenen Devices. Meinen Haupt-PC und der NanoPi R5S.

    abd150e7-4bba-4651-a486-f6577033f1a8-grafik.png

    Man kann dann vom Haupt-PC aus, alle Container auf dem NanoPi R5S bearbeiten, stoppen, löschen usw. Ich mag solche praktischen Lösungen, weil ich am liebsten von meinem Haupt-PC aus arbeite.

    Unter Environments findet man diesen Einrichtungs Assistenten.

    7c70ff5f-471e-4235-b326-29c2f2033bcb-grafik.png

    Mich haben diese ganzen Möglichkeiten am Anfang etwas verwirrt!? Hier mal das, was ich gemacht habe.

    Schaut Euch also ruhig mal alle Möglichkeiten an, die Dokumentation dazu ist sehr ausführlich.

    • Agent
    • API
    • Socket
    • Edge Agent

    Agent

    Es wird ein Portainer Agent auf dem Zielgerät installiert, der mit dem Docker Daemon kommuniziert. Der Agent wird dann ferngesteuert.

    API

    API erlaubt den Zugriff auf den Docker Daemon über ein Socket.

    Socket

    Ich habe nicht ganz verstanden, was das macht!?

    Edge Agent

    Sieht so aus, als wenn das ein Fernzugriff auf den laufen Portainer Dienst, im entfernten Rechner, über Port 9443 ist.

    b45b29b0-b40b-4907-86e4-2be04ee25e68-grafik.png

    Der Portainer auf dem Zielgerät muss aber entsprechend eingerichtet werden, damit beide das Passwort nutzen. Die Kommunikation ist also verschlüsselt.

    Agent Variante

    Ich hatte mich also dazu entschieden, auf beiden Devices den Portainer zu installieren. Ich möchte aber, wie schon geschrieben, auch von meinem Haupt-PC aus das alles verwalten können. Sprich, ein Portainer Zugriff für beide Devices.

    695e49d7-8831-4501-b393-9b88bf999634-grafik.png

    Dort steht sehr schön, was man machen muss. Ab docker service create kopieren und in einer Konsole auf dem Zielgerät eingeben.

    Noch einen Namen und die IP-Adresse eingeben - fertig.

    NanoPi R5S

    Sieht dann auf dem NanoPi R5S so aus.

    b4f62183-a82a-4c8b-9ba3-d83289a6ea14-grafik.png

    Beim Schreiben diesen Beitrages ist mir dann aufgefallen, das ich den Portainer Docker doch eigentlich gar nicht benötige!? Also mal ausgeschaltet und siehe da, läuft 🙂

    Haupt-PC

    Mein Haupt-PC

    4218ac7a-9778-4c15-9eb5-f238005085d6-grafik.png

    Mir gefällt der Portainer. Hier der Link zur ausführlichen Dokumentation. Viel Spaß beim Dockern 😉

  • Docker & Redis Datenbank

    Verschoben Linux
    2
    0 Stimmen
    2 Beiträge
    184 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 Upgrade

    Linux
    2
    0 Stimmen
    2 Beiträge
    68 Aufrufe
    FrankMF

    Und das geht mit den Agents genauso einfach.

    root@FriendlyWrt:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5b806374e5d5 portainer/agent:latest "./agent" 3 months ago Up 5 years 0.0.0.0:9001->9001/tcp, :::9001->9001/tcp portainer_agent 729d6ad08dbc linuxserver/dokuwiki:latest "/init" 3 months ago Up 5 years 443/tcp, 0.0.0.0:8080->80/tcp, :::8080->80/tcp DokuWiki root@FriendlyWrt:~# docker stop portainer_agent portainer_agent root@FriendlyWrt:~# docker rm portainer_agent portainer_agent root@FriendlyWrt:~# docker pull portainer/agent:latest latest: Pulling from portainer/agent 772227786281: Already exists 96fd13befc87: Already exists 0382ee122be2: Pull complete c58a787d67da: Pull complete f185cdc7d05a: Pull complete e6752ff0f773: Pull complete Digest: sha256:2c1abfac4937923e625be5f63a15f49a19cc4cca247c50f8746a9222023865a3 Status: Downloaded newer image for portainer/agent:latest docker.io/portainer/agent:latest root@FriendlyWrt:~# 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:latest 0aabe2273cd6cbf0874c9239d2efc58a848673dd9b13be2a6a26a084b6b9a63d
  • Portainer - Update 2.15

    Linux
    1
    0 Stimmen
    1 Beiträge
    111 Aufrufe
    Niemand hat geantwortet
  • OpenWrt - Docker & DNS & Zugriff auf WAN

    Linux
    4
    0 Stimmen
    4 Beiträge
    402 Aufrufe
    FrankMF

    Es geht weiter, der erste ☕ und ich bin mit der Lösung nicht so richtig zufrieden, also suchen.

    Als erstes habe ich heute Morgen ein frisches SD-Karten Image mit Docker von FreindlyWrt genommen und auf meinem Test NanoPi R5S installiert. Dort mal die Config angeschaut um zu sehen, ob der Eintrag standardmäßig gesetzt ist. Doch dort taucht dann einmal eine ganz ander Config auf 🙄

    # The following settings require a restart of docker to take full effect, A reload will only have partial or no effect: # bip # blocked_interfaces # extra_iptables_args # device config globals 'globals' # option alt_config_file '/etc/docker/daemon.json' option enable '1' option data_root '/mnt/nvme_part2/docker' option log_level 'warn' option iptables '1' #list hosts 'unix:///var/run/docker.sock' # option bip '172.18.0.1/24' # option fixed_cidr '172.17.0.0/16' # option fixed_cidr_v6 'fc00:1::/80' # option ipv6 '1' # option ip '::ffff:0.0.0.0' # list dns '172.17.0.1' # list registry_mirrors 'https://<my-docker-mirror-host>' list registry_mirrors 'https://hub.docker.com' option remote_endpoint '0' # option bridge 'br-container' # Docker ignores fw3 rules and by default all external source IPs are allowed to connect to the Docker host. # See https://docs.docker.com/network/iptables/ for more details. # firewall config changes are only additive i.e firewall will need to be restarted first to clear old changes, # then docker restarted to load in new changes. config firewall 'firewall' option device 'docker0' list blocked_interfaces 'wan' option extra_iptables_args '--match conntrack ! --ctstate RELATED,ESTABLISHED' # allow outbound connections

    Das interessiert uns jetzt

    list blocked_interfaces 'wan' option extra_iptables_args '--match conntrack ! --ctstate RELATED,ESTABLISHED' # allow outbound connections

    Wenn ich das jetzt alles richtig verstehe, muss WAN geblockt sein, weil sonst der Docker Host offen im Netz steht (Hierbei bin ich mir nicht 100% sicher)
    Die zweite Zeile ist eine iptables Regel, die es den Containern dann ermöglicht das Internet zu erreichen.

    Das habe ich jetzt so eingestellt und getestet.

    root@b9ffae24913a:/# ping 1.1.1.1 PING 1.1.1.1 (1.1.1.1): 56 data bytes 64 bytes from 1.1.1.1: icmp_seq=0 ttl=57 time=17.151 ms 64 bytes from 1.1.1.1: icmp_seq=1 ttl=57 time=16.553 ms 64 bytes from 1.1.1.1: icmp_seq=2 ttl=57 time=20.630 ms 64 bytes from 1.1.1.1: icmp_seq=3 ttl=57 time=13.948 ms ^C--- 1.1.1.1 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 13.948/17.071/20.630/2.382 ms root@b9ffae24913a:/# ping google.de PING google.de (142.250.185.195): 56 data bytes 64 bytes from 142.250.185.195: icmp_seq=0 ttl=58 time=23.797 ms 64 bytes from 142.250.185.195: icmp_seq=1 ttl=58 time=16.953 ms 64 bytes from 142.250.185.195: icmp_seq=2 ttl=58 time=19.441 ms ^C--- google.de ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max/stddev = 16.953/20.064/23.797/2.829 ms

    Ich hoffe mal das ich diese Thema jetzt zu den Akten legen kann.

    Wenn was falsch ist, bitte hier kommentieren, damit ich das ändern kann.

  • Portainer

    Linux
    3
    0 Stimmen
    3 Beiträge
    114 Aufrufe
    FrankMF

    Ich wollte ja eigentlich auf dem NanoPi R5S auch checkmk als Docker Container laufen lassen, so hätte ich das alles an einem Ort, aber.....

    checkmk wird leider nur für eine Architektur released 😞

    3ea5ce2a-b04b-444c-b3a4-f56496ba83fb-grafik.png

    Dann läuft der halt auf meinem Haupt-PC so nebenbei mit...

  • Portainer - NodeBB Container erstellen

    Linux
    1
    0 Stimmen
    1 Beiträge
    319 Aufrufe
    Niemand hat geantwortet
  • Docker - Portainer

    Linux
    3
    0 Stimmen
    3 Beiträge
    699 Aufrufe
    FrankMF

    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.

  • ROCKPro64 - Docker Image

    ROCKPro64
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    FrankMF

    Das ganze hat einen furchtbar schönen Vorteil. Mal angenommen, ich habe ein NodeBB-Forum in einem Container laufen. Will das Ding updaten und das crasht einfach mal so. Egal, Container stoppen, Container starten und alles läuft wieder.

    Mit dem Commit sichere ich mir dann den Zustand nachdem ich weiß, das alles klappt 🙂