[comment]: # ({857906ba-e1f5ce3f})
# 3 Aktualizacja z kontenerów

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

[comment]: # ({c77bf434-236aea13})
### Omówienie

Ta sekcja opisuje kroki wymagane do pomyślnego [uaktualnienia](/manual/installation/upgrade) kontenerów Zabbix **7.4**.x.

Dostępne są oddzielne zestawy instrukcji dla:

-   [uaktualnienia obrazu komponentu Zabbix](#zabbix-component-image-upgrade)
-   [uaktualnienia pliku Docker Compose](#docker-compose-file-upgrade)

::: notewarning
Przed uaktualnieniem upewnij się, że zapoznałeś się z odpowiednimi [**uwagami dotyczącymi uaktualnienia**](/manual/installation/upgrade)!
:::

::: noteimportant
Przed rozpoczęciem uaktualnienia sprawdź, czy użytkownicy mają odpowiednie uprawnienia do bazy danych na potrzeby uaktualnienia.
<br><br>
W przypadku uaktualnień z Zabbix 6.0 lub starszego podczas uaktualnienia będzie trzeba utworzyć deterministyczne wyzwalacze.
Jeśli dla MySQL/MariaDB włączone jest binarne logowanie, wymaga to uprawnień superużytkownika lub ustawienia parametru zmiennej/konfiguracji `log_bin_trust_function_creators = 1`.
Instrukcje dotyczące ustawiania tej zmiennej znajdują się w sekcji [Skrypty tworzenia bazy danych](/manual/appendix/install/db_scripts#mysqlmariadb).
<br><br>
Należy pamiętać, że jeśli polecenie jest wykonywane z konsoli, zmienna zostanie ustawiona tylko tymczasowo i zostanie usunięta po ponownym uruchomieniu Dockera.
W takim przypadku pozostaw uruchomioną usługę SQL, a zatrzymaj tylko usługę `zabbix-server`, wykonując `docker compose down zabbix-server`, a następnie `docker compose up -d zabbix-server`.
<br><br>
Alternatywnie można ustawić tę zmienną w pliku konfiguracyjnym.
:::

W zależności od rozmiaru bazy danych uaktualnienie bazy danych do wersji 7.4 może zająć dużo czasu.

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

[comment]: # ({c1a29906-27011b38})
### Aktualizacja obrazu komponentu Zabbix

Te instrukcje służą do aktualizacji obrazów Docker używanych jako baza dla kontenerów komponentów Zabbix.

Poniższe kroki wykorzystują proxy Zabbix jako przykład.
Zastąp `zabbix-proxy-sqlite3` nazwą kontenera swojego komponentu.

1\. Sprawdź wszystkie kontenery, aby zidentyfikować ich nazwy i bieżące wersje obrazów:

```bash
docker ps -a

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

2\. Pobierz nową wersję obrazu:

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

3\. Zatrzymaj kontener komponentu Zabbix:

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

4\. Usuń kontener komponentu Zabbix:

::: noteimportant
Upewnij się, że przed kontynuowaniem zanotowano wszystkie flagi konfiguracji oraz montowania woluminów użyte w oryginalnym poleceniu `docker run`, ponieważ będą one potrzebne do odtworzenia kontenera.
:::

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

5\. Uruchom nowy kontener, używając zaktualizowanego obrazu:

```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
Więcej informacji na temat uruchamiania kontenerów Zabbix można znaleźć w sekcji [Docker (manualne wdrożenie)](/manual/installation/containers#docker-manual-deployment).
:::

6\. Sprawdź, czy aktualizacja zakończyła się powodzeniem, analizując logi kontenera:

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

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

[comment]: # ({06d2b8ca-d707ad1d})
### Aktualizacja pliku Docker Compose

Te instrukcje służą do aktualizacji plików Docker Compose używanych do wdrażania komponentów Zabbix.
Postępuj zgodnie z tymi instrukcjami, jeśli zainstalowałeś Zabbix przy użyciu [Docker Compose](/manual/installation/containers#docker-compose).

1\. Sprawdź wszystkie kontenery, aby zidentyfikować ich nazwy i bieżące wersje obrazów:

```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\. Przejdź do repozytorium Zabbix Docker, które wcześniej sklonowałeś, pobierz najnowsze aktualizacje i przełącz się na gałąź 7.4:

::: noteimportant
Jeśli zmodyfikowałeś plik `.env`, `compose.yaml` lub inne pliki w lokalnym repozytorium, polecenie `git pull` może je nadpisać.
Przed wykonaniem tego kroku wykonaj kopię zapasową wszystkich lokalnych zmian.
:::

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

3\. Wdróż komponenty Zabbix, używając zaktualizowanego pliku Docker Compose:

```bash
# Z MySQL jako bazą danych:
docker compose -f ./compose.yaml up -d

# Z PostgreSQL jako bazą danych:
docker compose -f ./compose_pgsql.yaml up -d
```

::: noteclassic
Po ponownym utworzeniu i uruchomieniu wszystkich kontenerów wznowienie zbierania danych może potrwać 1—3 minuty.
Więcej informacji o uruchamianiu kontenerów Zabbix znajdziesz w sekcji [Docker Compose](/manual/installation/containers#docker-compose).
:::

4\. Sprawdź, czy aktualizacja zakończyła się pomyślnie, analizując logi kontenera (zastąp `zabbix-docker-zabbix-server-1` nazwą kontenera swojego komponentu):

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

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