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 - Docker Compose Hetzner VM

    Angeheftet Verschoben OpenCloud opencloud linux docker
    2
    2
    0 Stimmen
    2 Beiträge
    239 Aufrufe
    FrankMF
    Ich habe mich nochmal mit verschiedenen Aspekten der produktiven Installation beschäftigt. Auch ein wenig die KI befragt und dann ein paar Änderungen vorgenommen. Was hatte mich gestört? Traefik lief als root. Um das zu ändern, habe ich das docker-compose.yml angepasst. Ich habe auch gleich mal auf die aktuelle Version angepasst. services: traefik: image: traefik:v3.4.1 #3.3.1 container_name: traefik user: "1000:1001" # 1000 = dockeruser, 1001=docker group cap_add: - NET_BIND_SERVICE # erlaubt Ports <1024 restart: always networks: - opencloud-net ports: - "80:80" - "443:443" volumes: - ./certs:/certs # bind-mount acme.json - /var/run/docker.sock:/var/run/docker.sock:ro command: - "--log.level=${TRAEFIK_LOG_LEVEL:-ERROR}" # Let's Encrypt HTTP-01 Challenge - "--certificatesResolvers.http.acme.email=${TRAEFIK_ACME_MAIL:-example@example.org}" - "--certificatesResolvers.http.acme.storage=/certs/acme.json" - "--certificatesResolvers.http.acme.httpChallenge.entryPoint=http" - "--certificatesResolvers.http.acme.caserver=${TRAEFIK_ACME_CASERVER:-https://acme-v02.api.letsencrypt.org/directory}" # Dashboard - "--api.dashboard=true" # Entrypoints - "--entryPoints.http.address=:80" - "--entryPoints.http.http.redirections.entryPoint.to=https" - "--entryPoints.http.http.redirections.entryPoint.scheme=https" - "--entryPoints.https.address=:443" - "--entryPoints.https.transport.respondingTimeouts.readTimeout=12h" - "--entryPoints.https.transport.respondingTimeouts.writeTimeout=12h" - "--entryPoints.https.transport.respondingTimeouts.idleTimeout=3m" # Docker Provider - "--providers.docker.endpoint=unix:///var/run/docker.sock" - "--providers.docker.exposedByDefault=false" # Access Log - "--accessLog=true" - "--accessLog.format=json" - "--accessLog.fields.headers.names.X-Request-Id=keep" labels: - "traefik.enable=${TRAEFIK_DASHBOARD:-false}" - "traefik.http.middlewares.traefik-auth.basicauth.users=${TRAEFIK_BASIC_AUTH_USERS:-admin:$$apr1$$4vqie50r$$YQAmQdtmz5n9rEALhxJ4l.}" - "traefik.http.routers.traefik.entrypoints=https" - "traefik.http.routers.traefik.rule=Host(`${TRAEFIK_DOMAIN:-traefik.opencloud.test}`)" - "traefik.http.routers.traefik.middlewares=traefik-auth" - "traefik.http.routers.traefik.tls.certresolver=http" - "traefik.http.routers.traefik.service=api@internal" networks: opencloud-net: volumes: {} Und hierzu - ./certs:/certs # bind-mount acme.json brauch es noch ein paar Anpassungen auf dem Host, also im Verzeichnis von wo wir deployen mit dem dockeruser! mkdir -p ./certs touch ./certs/acme.json chmod 600 ./certs/acme.json chown 1000:1000 ./certs/acme.json # UID muss mit docker-compose user übereinstimmen Das klappt jetzt hier einwandfrei. dockeruser@opencloud:~/opencloud/deployments/examples/opencloud_full$ docker exec -it traefik id uid=1000 gid=1001 groups=1001 Sieht soweit gut aus Die KI meint noch das hier Wenn du maximale Sicherheit willst, kannst du langfristig docker-socket-proxy einsetzen. Er erlaubt Traefik nur lesenden Zugriff auf die Container-API: → Projektseite: Tecnativa/docker-socket-proxy Das muss ich aber erst noch sacken lassen und mich etwas zu einlesen.
  • Forgejo

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

    Verschoben Linux pycharm docker linux
    1
    4
    0 Stimmen
    1 Beiträge
    324 Aufrufe
    Niemand hat geantwortet
  • Portainer - Python3.10

    Linux portainer docker linux
    1
    7
    0 Stimmen
    1 Beiträge
    107 Aufrufe
    Niemand hat geantwortet
  • Portainer - NodeBB Container erstellen

    Linux nodebb portainer linux redis
    1
    5
    0 Stimmen
    1 Beiträge
    346 Aufrufe
    Niemand hat geantwortet
  • Docker - Portainer

    Linux docker portainer linux
    3
    6
    0 Stimmen
    3 Beiträge
    837 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 [image: 1659859625137-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. [image: 1659859549311-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 docker rockpro64
    4
    1
    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