Skip to content

Portainer Upgrade

Linux
2 1 117
  • Von Zeit zu Zeit gibt es ja bei guter Software mal ein Update. Wie aktualisiert man das denn, wenn das als Docker Container läuft? Ganz einfach?

    Als erste Empfehlung, ein Backup anlegen. Unter Settings findet man die Option.

    4fd7b459-c5b3-40fe-aaad-18de912c55b7-grafik.png

    Danach folgendes in die Konsole eingeben

    # Stoppt den Container
    docker stop portainer
    
    # Entfernt den Container
    docker rm portainer
    
     # Lädt die aktuelle Version
    docker pull portainer/portainer-ce:latest
    
    # Container starten
    docker run -d -p 9000:9000 -p 9443:9443 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
    

    Ich nutze dafür den Port 9000, weil der 8000er schon belegt ist.

    Ganz einfach, und alle Daten sind noch da, weil diese permanent abgelegt sind. Siehe

    portainer_data:/data portainer/portainer-ce:latest
    
  • 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
    
  • 0 Stimmen
    1 Beiträge
    21 Aufrufe
    Niemand hat geantwortet
  • OpenCloud - Docker Compose Hetzner VM

    Verschoben OpenCloud opencloud linux docker
    2
    2
    0 Stimmen
    2 Beiträge
    166 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.
  • Docker & Redis Datenbank

    Verschoben Linux docker linux redis
    2
    0 Stimmen
    2 Beiträge
    271 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!
  • Pycharm & Docker

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

    Linux portainer docker linux
    1
    7
    0 Stimmen
    1 Beiträge
    104 Aufrufe
    Niemand hat geantwortet
  • Manjaro Stable-Update vom 20.02.23

    Linux manjaro docker linux
    2
    0 Stimmen
    2 Beiträge
    182 Aufrufe
    FrankMF
    Ich konnte es nicht lassen, ich habe es mal getestet.    ~  docker version  ✔  1m 37s  Client: Version: 23.0.1 API version: 1.42 Go version: go1.20 Git commit: a5ee5b1dfc Built: Sat Feb 11 13:58:04 2023 OS/Arch: linux/amd64 Context: default In der aktuellen systemd Datei steht folgendes drin. Bei mir zu finden unter /usr/lib/systemd/system/docker.service LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity Die override Dateien angelegt und durchgestartet. Läuft alles einwandfrei. Aber bitte fragt mich nicht, was dieser Wert da oben macht. Ich habe keine Ahnung. Update: Erklärung zu ulimits https://stackoverflow.com/questions/62127643/need-understand-ulimits-nofile-setting-in-host-and-container
  • Portainer - Entferntes System einbinden

    Linux portainer docker
    1
    6
    0 Stimmen
    1 Beiträge
    97 Aufrufe
    Niemand hat geantwortet
  • Portainer

    Linux portainer docker
    3
    2
    0 Stimmen
    3 Beiträge
    189 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 [image: 1662362886639-3ea5ce2a-b04b-444c-b3a4-f56496ba83fb-grafik.png] Dann läuft der halt auf meinem Haupt-PC so nebenbei mit...