Skip to content

Portainer

Linux
3 1 199
  • Ich hatte diesen Post erst in diesem Thread gepostet, finde aber das dieser einen eigenen Thread braucht.

    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.

    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.

  • Mal ein Beispiel, was man so machen kann. Ich habe bei Hetzner (Vorsicht Werbelink) ein paar Cloud-Server. Auf einem läuft eine DokuWiki Webseite.

    Das schöne daran ist, das es ohne DB auskommt, steht alles in den Files auf der Platte. Man kommt also ziemlich sicher immer dran, auch wenn man was kaputt macht 😉

    Nun ist es für den paranoiden Sysadmin nicht so gut, wenn man den Datenbestand nur an einer Stelle lagert. Da kommt jetzt Docker ins Spiel. Ich möchte diese Installation spiegeln, sprich im Netz ist die primäre DokuWiki Installation, hier lokal läuft eine gespiegelte Version.

    Ich gehe davon aus, das ihr den Docker Container für DokuWiki ans Laufen bekommen habt. Nachdem der Docker Container installiert wurde, ruft man ganz normal die Installation auf, mit

    localhost:8060/install.php
    

    Nach erfolgreicher Installation möchte ich jetzt die Daten aus dem Web in den permanenten Datenspeicher kopieren. Wo liegt dieser? Man klickt in der Übersicht auf den Container und sieht die Container Details

    Etwas weiter unten steht dann Volumes. Das interessiert uns.

    ac909d7f-8dd4-4f81-9257-32140b174fe3-grafik.png

    Hier liegen die Daten der Installation, die permanent erhalten bleiben weil sie auf dem Host lagern.

    ls -lha /var/lib/docker/volumes/18bf58cb90feeb4542cfeae0921ba68a8bc2b25b9d0d7eceb7594b044a39a97a/_data/dokuwiki/data/
    insgesamt 56K
    drwxr-xr-x 1 911 911  568 29. Jun 18:08 .
    drwxr-xr-x 1 911 911   62  7. Aug 09:20 ..
    drwxr-xr-x 1 911 911  75K  8. Aug 20:34 attic
    drwxr-xr-x 1 911 911   92  5. Mär 10:06 attribute
    drwxr-xr-x 1 911 911   84  5. Mär 10:06 cache
    drwxr-xr-x 1 911 911  560 29. Jun 18:08 data
    -rw-r--r-- 1 911 911  27K 29. Jun 18:08 deleted.files
    -rw-r--r-- 1 911 911 6,4K  5. Mär 10:06 dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.png
    -rw-r--r-- 1 911 911  12K  5. Mär 10:07 dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.xcf
    -rw-r--r-- 1 911 911   32  5. Mär 10:06 _dummy
    -rw-r--r-- 1 911 911  143  5. Mär 10:06 .htaccess
    drwxr-xr-x 1 911 911 2,1K  9. Aug 05:07 index
    drwxr-xr-x 1 911 911  160  9. Aug 05:07 locks
    drwxr-xr-x 1 911 911   12 29. Jun 18:08 log
    drwxr-xr-x 1 911 911 1,5K 31. Jul 13:18 media
    drwxr-xr-x 1 911 911  192  9. Apr 16:55 media_attic
    drwxr-xr-x 1 911 911 2,2K 31. Jul 13:18 media_meta
    drwxr-xr-x 1 911 911 8,9K  8. Aug 16:27 meta
    drwxr-xr-x 1 911 911 2,5K 30. Jul 11:29 pages
    drwxr-xr-x 1 911 911   12  3. Aug 18:40 tmp
    

    Ok, wir brauchen ein Script 😉

    #!/bin/bash
    ###############################################################################
    # Rsync-Script
    # Hetzner-Cloud <-> Docker Container
    #############################################################################
    
    rsync -avzh root@<IP-Adresse>:/usr/share/nginx/dokuwiki/data/ /var/lib/docker/volumes/18bf58cb90feeb4542cfeae0921ba68a8bc2b25b9d0d7eceb7594b044a39a97a/_data/dokuwiki/data/
    chown -R 911:911 /var/lib/docker/volumes/18bf58cb90feeb4542cfeae0921ba68a8bc2b25b9d0d7eceb7594b044a39a97a/_data/dokuwiki/data/
    

    Erster Befehl kopiert mittels rsync die Daten vom Server in das Docker Verzeichnis. Da auf dem Server die Files andere Benutzerrechte haben, als im Docker Container, gibt es dann prompt eine Fehlermeldung.

    Auf dem Server lautet der User

    www-data
    

    im Docker Container

    911
    

    Ok, bekommt man hin 🙂 In der zweiten Zeile werden die Benutzerrechte angepasst. Fertig.

    Das Ganze dann mittels Cronjob laufen lassen, z.B.

    # m h dom mon dow command
    30 05 * * *  /root/sync_dokuwiki.sh
    

    Im Beispiel wird jeden Tag um 05:30 Uhr gesynct. Fertig, klappt so weit, wie ich es gerne hätte.

  • 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...

  • 0 Stimmen
    1 Beiträge
    29 Aufrufe
    Niemand hat geantwortet
  • OpenCloud - Storage Backends testen

    OpenCloud opencloud linux docker
    2
    0 Stimmen
    2 Beiträge
    110 Aufrufe
    FrankMF
    So, mal weiter damit beschäftigen. Also, durch meine ganze Testerei war doch ein Haufen Müll angefallen. dockeruser@opencloud:~/opencloud/deployments/examples/opencloud_full$ docker volume ls DRIVER VOLUME NAME local 0fcd6f237898477b251f3dacb6cd083996092b783f991f899b06d89befc41b1e local 1d8df3f5d41613ad93ed753ce2102a14738cf00e8e7d127ec79881660be291ab local 3b612ce20b207c226640d6b84c32c788cd0fad9f9157578c2310f4b3db63dd29 local 5dfdde733fefb9fdb805acec8338a860762e88cd0753f4bb4098a19fbcd4b6c3 local 6bd5659759fb99b0d0613175d2392ca268dbdb3bd0353b85ccdf9a6004e798c0 local 6f8881420aa0e7713ed5308e635fcb9382939b6570afbd1d776866a07f6d61f2 local 29f7d20edd9eda935041cea7af5aab0af748175d7df8f345288463753d2afa9a local 66ca6287706aac5013b458a109e7c143c4fb177670734fc7a0f68495b1c62fd4 local 74d304835ef51f91226cc22dbbd494d2ddc9a4d91badf88814cae24126efd04a local 0203eb654c1f28a60899ded4660fb101ea222a5f8c86a225d39f3e5da877f1c0 local 271c474feb2ed915afb8efa85e422461fcfdf8acd4097355841eadf33847b7ef local 569a8c34804afd5861299973bed023c0146f40c0dbda0d980b8651bbcadc7fc9 local 655b1f446b5db9749787d4be4445887dcb3d19906d4244d059a0f292a6cd5f01 local 843bb8d0d7845adab06e146c44b153b842d5a1a1d8eb3972bdee1d3cbcb7e815 local 987ee19b8639ad5fffabba276ceb1ca09af6ebc66efb007e561570589c9c53a8 local 1004f5b7b161a4fe37a07d7960740e5cd09b90d5744f1922fb3e41c1265f800a local 2043c77b57728106cbcca8b7e2d3ae2f07ddf4ca44ee21fca232526c95e07381 local 3685c81df1be0061352dfc5b0e6db8d8d9f9b0915a271f1ca53d2796a7876805 local 9581abcfb4fb42b2fabfabbc8139cc4659ca83d92a8b60041957565409293ef4 local 796650f1fa887ff0b153822b268a10aa3579f4f2ca3ce6855ff292e49b3bb6b8 local 426251107e3131a250b27b96e795355332127f19ccf1ec8252860aff5d0caec8 local bd43ceef38448db348cc34e7dc5c4fee9c834d8b6c5957b1e6cdb83cec7b0974 local d94e7ce6c0fb1f4f7b811f624b4526ea889f2f8b99d2aa1b21e79d00dfeb38d0 local e87a27c307a8be80839fae1c006273d57570bb99f60c78c95e86a1e9ea1a786c local f2b3e30406db730e2a341850243c115b6eb231f30f41f5353c7b2427de39af75 local opencloud_full_certs local opencloud_full_opencloud-apps local opencloud_full_opencloud-config local opencloud_full_opencloud-data Oje, das sieht ziemlich vermüllt aus. Dann mal ganz mutig alles löschen. Vorher alles gestoppt. docker compose down Volume löschen, nur ein Beispiel docker volume rm opencloud_full_opencloud-data Alles gelöscht. Dann mal ein Neustart docker compose up -d Jetzt sieht das schon viel besser aus. dockeruser@opencloud:~/opencloud/deployments/examples/opencloud_full$ docker volume ls DRIVER VOLUME NAME local 3737a8eab68ffdc08d6e41493346feeb2e06ef350a210213ab450775318e49f8 local opencloud_full_opencloud-apps Da ich neugierig bin, schauen wir mal rein. root@opencloud:~ ls -lha /var/lib/docker/volumes/3737a8eab68ffdc08d6e41493346feeb2e06ef350a210213ab450775318e49f8/_data/web/assets/apps/ total 8.0K drwxr-x--x 2 dockeruser dockeruser 4.0K May 19 18:25 . drwxr-x--x 3 dockeruser dockeruser 4.0K May 31 10:21 .. Vermutlich ein Speicher, wo die Web Apps was ablegen können. Der andere zeigt es dann klarer. root@opencloud-4gb-fsn1-2:~# ls -lha /var/lib/docker/volumes/opencloud_full_opencloud-apps/_data total 28K drwxr-x--x 7 dockeruser dockeruser 4.0K May 31 10:22 . drwx-----x 3 root root 4.0K May 31 10:21 .. drwxr-xr-x 2 root root 4.0K May 31 10:22 draw-io drwxr-xr-x 2 root root 4.0K May 31 10:21 external-sites drwxr-xr-x 3 root root 4.0K May 31 10:22 json-viewer drwxr-xr-x 2 root root 4.0K May 31 10:22 progress-bars drwxr-xr-x 3 root root 4.0K May 31 10:22 unzip Ok, das sollte mir erst mal reichen. Meine Installation lagert die certs ja aus, das habe ich im docker compose geändert. dockeruser@opencloud:~/opencloud/deployments/examples/opencloud_full$ ls -lha certs/ total 44K drwxr-xr-x 2 dockeruser dockeruser 4.0K May 30 05:49 . drwxr-xr-x 6 dockeruser dockeruser 4.0K May 31 10:38 .. -rw------- 1 dockeruser dockeruser 33K May 29 11:00 acme.json Im docker-compose.yml volumes: - ./certs:/certs # bind-mount acme.json Der Grund dafür ist, das ich das docker-compose nicht als root laufen haben möchte. Die Hauptdaten sind nach lokal ausgelagert. OC_CONFIG_DIR=/home/dockeruser/oc_data/config OC_DATA_DIR=/home/dockeruser/oc_data/data Somit sollte jetzt alles so passen und ich muss mal langsam mit der Spielerei aufhören
  • Forgejo

    Linux docker forgejo linux
    1
    1
    0 Stimmen
    1 Beiträge
    252 Aufrufe
    Niemand hat geantwortet
  • Docker & Redis Datenbank

    Verschoben Linux docker linux redis
    2
    0 Stimmen
    2 Beiträge
    279 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 portainer docker linux
    1
    7
    0 Stimmen
    1 Beiträge
    107 Aufrufe
    Niemand hat geantwortet
  • Portainer Upgrade

    Linux docker
    2
    1
    0 Stimmen
    2 Beiträge
    124 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 portainer
    1
    1
    0 Stimmen
    1 Beiträge
    145 Aufrufe
    Niemand hat geantwortet
  • Portainer - Entferntes System einbinden

    Linux portainer docker
    1
    6
    0 Stimmen
    1 Beiträge
    98 Aufrufe
    Niemand hat geantwortet