# Portainer updaten

# Portainer CE auf Docker aktualisieren

Diese Anleitung aktualisiert eine Portainer-CE-Installation von **2.19.4** auf **2.39.2 LTS**.

## Aktuelle Konfiguration

- Containername: `portainer`
- Image bisher: `portainer/portainer-ce:latest`
- Ziel-Image: `portainer/portainer-ce:lts`
- Portainer HTTPS: `9443`
- Edge-Agent-Tunnel: `8000`
- Datenvolume: `portainer_data`
- Docker-Socket: `/var/run/docker.sock`

Die vorhandenen Einstellungen, Benutzer, Stacks und Environments befinden sich im Volume `portainer_data`.

## 1. Aktuelle Version prüfen

```
docker exec portainer /portainer --version
```

## 2. Neues LTS-Image herunterladen

Portainer läuft während des Downloads weiter:

```
docker pull portainer/portainer-ce:lts
```

## 3. Portainer stoppen

```
docker stop portainer
```

Andere Container und Anwendungen bleiben davon unberührt.

## 4. Portainer-Daten sichern

```
sudo tar \
  -C /var/lib/docker/volumes/portainer_data/_data \
  -czf /home/hubobel/portainer-data-pre-2.39.2.tar.gz \
  .
```

### Backup kontrollieren

```
sudo ls -lh /home/hubobel/portainer-data-pre-2.39.2.tar.gz
```

Inhalt stichprobenartig anzeigen:

```
sudo tar -tzf /home/hubobel/portainer-data-pre-2.39.2.tar.gz | head
```

Die Ausgabe sollte unter anderem `portainer.db` enthalten.

Backup gegen unberechtigten Zugriff schützen:

```
sudo chmod 600 /home/hubobel/portainer-data-pre-2.39.2.tar.gz
```

Der alte Container sollte erst entfernt werden, wenn das Backup vorhanden und größer als `0` Byte ist.

## 5. Alten Portainer-Container entfernen

```
docker rm portainer
```

Dabei wird nur der Container entfernt. Das Volume `portainer_data` bleibt erhalten.

## 6. Neue LTS-Version starten

```
docker run -d \
  --name portainer \
  --restart=always \
  -p 8000:8000 \
  -p 9443:9443 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:lts
```

Beim ersten Start aktualisiert Portainer seine interne Datenbank. Der Container darf währenddessen nicht neu gestartet oder gestoppt werden.

## 7. Startprotokoll kontrollieren

```
docker logs portainer --tail 100
```

Bei Bedarf kann das Protokoll fortlaufend beobachtet werden:

```
docker logs -f portainer
```

Die Anzeige wird mit `Strg+C` beendet, ohne den Container zu stoppen.

## 8. Neue Version prüfen

```
docker exec portainer /portainer --version
```

Erwartete Ausgabe:

```
2.39.2
```

## 9. Funktion prüfen

Anschließend in der Portainer-Weboberfläche kontrollieren:

- Anmeldung funktioniert
- Docker-Environment ist erreichbar
- vorhandene Stacks werden angezeigt
- Container und Volumes sind vorhanden
- Container-Konsole und Protokollanzeige funktionieren

## Backup aufbewahren

Das Backup befindet sich unter:

```
/home/hubobel/portainer-data-pre-2.39.2.tar.gz
```

Es sollte mindestens so lange aufbewahrt werden, bis die aktualisierte Portainer-Installation vollständig geprüft wurde.

## Wichtige Hinweise

- Das Volume `portainer_data` nicht löschen.
- Kein neues Volume mit einem anderen Namen verwenden.
- Nicht von `portainer/portainer-ce` zu `portainer/portainer-ee` wechseln.
- Ein Downgrade nach erfolgter Datenbankmigration sollte nicht mit dem bestehenden Volume versucht werden.
- Für eine Wiederherstellung muss das vor dem Update erzeugte Backup verwendet werden.