[comment]: # ({857906ba-e1f5ce3f})
# 3 Upgrade von Containern

[comment]: # ({/857906ba-e1f5ce3f})

[comment]: # ({c77bf434-236aea13})
### Übersicht

Dieser Abschnitt beschreibt die Schritte, die für ein erfolgreiches [Upgrade](/manual/installation/upgrade) auf Zabbix **7.4**-Container erforderlich sind.

Separate Anleitungen sind verfügbar für:

-   [Upgrade des Zabbix-Komponenten-Images](#zabbix-component-image-upgrade)
-   [Upgrade der Docker-Compose-Datei](#docker-compose-file-upgrade)

::: notewarning
Lesen Sie vor dem Upgrade unbedingt die relevanten [**Upgrade-Hinweise**](/manual/installation/upgrade)!
:::

::: noteimportant
Bevor Sie mit dem Upgrade beginnen, stellen Sie sicher, dass Benutzer über die erforderlichen Berechtigungen für die Datenbank zu Upgrade-Zwecken verfügen.
<br><br>
Bei Upgrades von Zabbix 6.0 oder älter müssen während des Upgrades deterministische Auslöser erstellt werden.
Wenn das Binär-Logging für MySQL/MariaDB aktiviert ist, erfordert dies Superuser-Berechtigungen oder das Setzen des Variablen-/Konfigurationsparameters `log_bin_trust_function_creators = 1`.
Siehe [Datenbank-Erstellungsskripte](/manual/appendix/install/db_scripts#mysqlmariadb) für Anweisungen zum Setzen der Variable.
<br><br>
Beachten Sie, dass die Variable bei Ausführung über eine Konsole nur vorübergehend gesetzt wird und beim Neustart von Docker entfernt wird.
In diesem Fall lassen Sie Ihren SQL-Dienst weiterlaufen und stoppen Sie nur den Dienst `zabbix-server`, indem Sie `docker compose down zabbix-server` ausführen und anschließend `docker compose up -d zabbix-server`.
<br><br>
Alternativ können Sie diese Variable in der Konfigurationsdatei setzen.
:::

Abhängig von der Größe der Datenbank kann das Datenbank-Upgrade auf Version 7.4 lange dauern.

[comment]: # ({/c77bf434-236aea13})

[comment]: # ({c1a29906-27011b38})
### Zabbix-Komponenten-Image aktualisieren

Mit diesen Anweisungen aktualisieren Sie Ihre Docker-Images, die als Basis für Ihre Zabbix-Komponenten-Container verwendet werden.

Die folgenden Schritte verwenden einen Zabbix-Proxy als Beispiel.
Ersetzen Sie `zabbix-proxy-sqlite3` durch den Containernamen Ihrer Komponente.

1\. Prüfen Sie alle Container, um ihre Namen und aktuellen Image-Versionen zu ermitteln:

```bash
docker ps -a

# CONTAINER ID   IMAGE                                           (...) NAMES
# 5a0c2e3d02b4   zabbix/zabbix-proxy-sqlite3:alpine-7.2-latest   (...) zabbix-proxy-sqlite3
```

2\. Laden Sie die neue Image-Version herunter:

```bash
docker pull zabbix/zabbix-proxy-sqlite3:alpine-7.4-latest
```

3\. Stoppen Sie den Zabbix-Komponenten-Container:

```bash
docker stop zabbix-proxy-sqlite3
```

4\. Entfernen Sie den Zabbix-Komponenten-Container:

::: noteimportant
Stellen Sie sicher, dass Sie alle Konfigurations-Flags und Volume-Mounts notiert haben, die im ursprünglichen `docker run`-Befehl verwendet wurden, bevor Sie fortfahren, da sie zum Neuerstellen des Containers benötigt werden.
:::

```bash
docker rm zabbix-proxy-sqlite3
```

5\. Starten Sie einen neuen Container mit dem aktualisierten Image:

```bash
docker run --name zabbix-proxy-sqlite3 \
  -e ZBX_SERVER_HOST=192.0.2.1 \
  -e ZBX_PROXYMODE=0 \
  -e ZBX_HOSTNAME=zabbix-proxy-sqlite3 \
  -v zabbix-proxy-data:/var/lib/zabbix/db_data \
  --init \
  -d \
  zabbix/zabbix-proxy-sqlite3:alpine-7.4-latest
```

::: noteclassic
Weitere Informationen zum Ausführen von Zabbix-Containern finden Sie unter [Docker (manuelle Bereitstellung)](/manual/installation/containers#docker-manual-deployment).
:::

6\. Überprüfen Sie anhand der Container-Logs, ob das Upgrade erfolgreich war:

```bash
docker logs -f zabbix-proxy-sqlite3
```

[comment]: # ({/c1a29906-27011b38})

[comment]: # ({06d2b8ca-d707ad1d})
### Docker Compose-Datei aktualisieren

Mit diesen Anweisungen werden die Docker Compose-Dateien aktualisiert, die für die Bereitstellung von Zabbix-Komponenten verwendet werden.
Befolgen Sie diese Anweisungen, wenn Sie Zabbix mit [Docker Compose](/manual/installation/containers#docker-compose) installiert haben.

1\. Prüfen Sie alle Container, um ihre Namen und aktuellen Image-Versionen zu ermitteln:

```bash
docker ps -a

# CONTAINER ID   IMAGE                                             (...) NAMES
# d095f486deef   zabbix/zabbix-server-mysql:alpine-7.2-latest      (...) zabbix-docker-zabbix-server-1
# 70627d833da0   zabbix/zabbix-web-nginx-mysql:alpine-7.2-latest   (...) zabbix-docker-zabbix-web-nginx-mysql-1
# aaaa664cc185   zabbix/zabbix-server-mysql:alpine-7.2-latest      (...) zabbix-docker-server-db-init-1
# 9ab3e77492ff   mysql:8.0-oracle                                  (...) zabbix-docker-mysql-server-1
```

2\. Wechseln Sie in das zuvor geklonte Zabbix-Docker-Repository, laden Sie die neuesten Aktualisierungen herunter und wechseln Sie zum 7.4-Branch:

::: noteimportant
Wenn Sie `.env`, `compose.yaml` oder andere Dateien in Ihrem lokalen Repository geändert haben, kann ein `git pull` diese überschreiben.
Sichern Sie alle lokalen Änderungen, bevor Sie diesen Schritt ausführen.
:::

```bash
cd zabbix-docker
git pull
git checkout 7.4
```

3\. Stellen Sie die Zabbix-Komponenten mit der aktualisierten Docker Compose-Datei bereit:

```bash
# Mit MySQL als Datenbank:
docker compose -f ./compose.yaml up -d

# Mit PostgreSQL als Datenbank:
docker compose -f ./compose_pgsql.yaml up -d
```

::: noteclassic
Nachdem alle Container neu erstellt und gestartet wurden, kann es 1—3 Minuten dauern, bis die Datenerfassung wieder aufgenommen wird.
Weitere Informationen zum Ausführen von Zabbix-Containern finden Sie unter [Docker Compose](/manual/installation/containers#docker-compose).
:::

4\. Überprüfen Sie anhand der Container-Protokolle, ob das Upgrade erfolgreich war (ersetzen Sie `zabbix-docker-zabbix-server-1` durch den Namen des Containers Ihrer Komponente):

```bash
docker logs -f zabbix-docker-zabbix-server-1
```

[comment]: # ({/06d2b8ca-d707ad1d})
