[comment]: # ({857906ba-e1f5ce3f})
# 3 Atualização a partir de containers

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

[comment]: # ({c77bf434-236aea13})
### Visão geral

Esta seção descreve as etapas necessárias para uma [atualização](/manual/installation/upgrade) bem-sucedida para contêineres do Zabbix **7.4**.x.

Conjuntos separados de instruções estão disponíveis para:

-   [Atualização da imagem do componente Zabbix](#zabbix-component-image-upgrade)
-   [Atualização do arquivo Docker Compose](#docker-compose-file-upgrade)

::: notewarning
Antes da atualização, certifique-se de ler as [**notas de atualização**](/manual/installation/upgrade) relevantes!
:::

::: noteimportant
Antes de iniciar a atualização, verifique se os usuários têm as permissões necessárias no banco de dados para fins de atualização.
<br><br>
Para atualizações a partir do Zabbix 6.0 ou anterior, triggers determinísticos precisarão ser criados durante a atualização.
Se o binary logging estiver habilitado para MySQL/MariaDB, isso requer privilégios de superusuário ou a definição do parâmetro de variável/configuração `log_bin_trust_function_creators = 1`.
Consulte [Scripts de criação do banco de dados](/manual/appendix/install/db_scripts#mysqlmariadb) para obter instruções sobre como definir a variável.
<br><br>
Observe que, se executado a partir de um console, a variável será definida apenas temporariamente e será removida quando um Docker for reiniciado.
Nesse caso, mantenha o serviço SQL em execução, pare apenas o serviço `zabbix-server` executando `docker compose down zabbix-server` e depois `docker compose up -d zabbix-server`.
<br><br>
Como alternativa, você pode definir essa variável no arquivo de configuração.
:::

Dependendo do tamanho do banco de dados, a atualização do banco de dados para a versão 7.4 pode levar muito tempo.

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

[comment]: # ({c1a29906-27011b38})
### Atualização da imagem do componente Zabbix

Estas instruções atualizam suas imagens Docker usadas como base para os contêineres do seu componente Zabbix.

As etapas abaixo usam um proxy Zabbix como exemplo. Substitua `zabbix-proxy-sqlite3` pelo nome do contêiner do seu componente.

1\. Verifique todos os contêineres para identificar seus nomes e as versões atuais das imagens:

```bash
docker ps -a

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

2\. Baixe a nova versão da imagem:

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

3\. Pare o contêiner do componente Zabbix:

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

4\. Remova o contêiner do componente Zabbix:

::: noteimportant
Certifique-se de ter anotado todos os sinalizadores de configuração e os pontos de montagem de volume usados no comando `docker run` original antes de prosseguir, pois eles serão necessários para recriar o contêiner.
:::

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

5\. Inicie um novo contêiner usando a imagem atualizada:

```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
Para mais informações sobre como executar contêineres Zabbix, consulte [Docker (implantação manual)](/manual/installation/containers#docker-manual-deployment).
:::

6\. Verifique se a atualização foi bem-sucedida conferindo os logs do contêiner:

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

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

[comment]: # ({06d2b8ca-d707ad1d})
### Atualização do arquivo Docker Compose

Estas instruções atualizam os arquivos Docker Compose usados para implantar componentes do Zabbix.
Siga estas instruções se você instalou o Zabbix usando [Docker Compose](/manual/installation/containers#docker-compose).

1\. Verifique todos os containers para identificar seus nomes e as versões atuais das imagens:

```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\. Navegue até o repositório Docker do Zabbix que você clonou anteriormente, faça o pull das atualizações mais recentes e mude para a branch 7.4:

::: noteimportant
Se você modificou `.env`, `compose.yaml` ou outros arquivos no seu repositório local, um `git pull` pode sobrescrevê-los.
Faça backup de quaisquer alterações locais antes de executar esta etapa.
:::

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

3\. Implante os componentes do Zabbix usando o arquivo Docker Compose atualizado:

```bash
# Com MySQL como banco de dados:
docker compose -f ./compose.yaml up -d

# Com PostgreSQL como banco de dados:
docker compose -f ./compose_pgsql.yaml up -d
```

::: noteclassic
Depois que todos os containers forem recriados e iniciados, pode levar de 1 a 3 minutos até que a coleta de dados seja retomada.
Para mais informações sobre a execução de containers do Zabbix, consulte [Docker Compose](/manual/installation/containers#docker-compose).
:::

4\. Verifique se a atualização foi bem-sucedida conferindo os logs do container (substitua `zabbix-docker-zabbix-server-1` pelo nome do container do seu componente):

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

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