[comment]: # ({fdf81d16-e1f5ce3f})
# Actualización desde contenedores

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

[comment]: # ({b238bbd2-236aea13})
### Resumen

Esta sección describe los pasos necesarios para una [actualización](/manual/installation/upgrade) correcta a los contenedores de Zabbix **8.0**.x.

Hay disponibles conjuntos de instrucciones separados para:

-   [Actualización de la imagen de componentes de Zabbix](#zabbix-component-image-upgrade)
-   [Actualización del archivo Docker Compose](#docker-compose-file-upgrade)

::: notewarning
¡Antes de la actualización, asegúrese de leer las [**notas de actualización**](/manual/installation/upgrade) correspondientes!
:::

::: noteimportant
Antes de iniciar la actualización, verifique que los usuarios tengan los permisos necesarios sobre la base de datos para fines de actualización.
<br><br>
Para actualizaciones desde Zabbix 6.0 o versiones anteriores, será necesario crear triggers deterministas durante la actualización.
Si el registro binario está habilitado para MySQL/MariaDB, esto requiere privilegios de superusuario o establecer la variable/parámetro de configuración `log_bin_trust_function_creators = 1`.
Consulte [Scripts de creación de base de datos](/manual/appendix/install/db_scripts#mysqlmariadb) para obtener instrucciones sobre cómo establecer la variable.
<br><br>
Tenga en cuenta que, si se ejecuta desde una consola, la variable solo se establecerá temporalmente y se eliminará cuando se reinicie un Docker.
En este caso, mantenga su servicio SQL en ejecución; detenga únicamente el servicio `zabbix-server` ejecutando `docker compose down zabbix-server` y luego `docker compose up -d zabbix-server`.
<br><br>
Como alternativa, puede establecer esta variable en el archivo de configuración.
:::

Dependiendo del tamaño de la base de datos, la actualización de la base de datos a la versión 8.0 puede tardar mucho tiempo.

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

[comment]: # ({63138e73-27011b38})
### Actualización de la imagen de componentes de Zabbix

Estas instrucciones actualizan sus imágenes de Docker utilizadas como base para los contenedores de sus componentes de Zabbix.

Los pasos a continuación usan un proxy de Zabbix como ejemplo.
Sustituya `zabbix-proxy-sqlite3` por el nombre del contenedor de su componente.

1\. Compruebe todos los contenedores para identificar sus nombres y las versiones actuales de sus imágenes:

```bash
docker ps -a

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

2\. Descargue la nueva versión de la imagen:

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

3\. Detenga el contenedor del componente de Zabbix:

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

4\. Elimine el contenedor del componente de Zabbix:

::: noteimportant
Asegúrese de haber anotado todas las opciones de configuración y los montajes de volúmenes utilizados en el comando `docker run` original antes de continuar, ya que serán necesarios para volver a crear el contenedor.
:::

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

5\. Inicie un nuevo contenedor usando la imagen actualizada:

```bash
docker run --name zabbix-proxy-sqlite3 \
  -e ZBX_SERVER_HOST=192.0.2.0 \
  -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-8.0-latest
```

::: noteclassic
Para más información sobre cómo ejecutar contenedores de Zabbix, consulte [Docker (manual deployment)](/manual/installation/install/containers#docker-manual-deployment).
:::

6\. Verifique que la actualización se haya realizado correctamente comprobando los registros del contenedor:

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

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

[comment]: # ({408f59dc-d707ad1d})
### Actualización del archivo Docker Compose

Estas instrucciones actualizan los archivos de Docker Compose utilizados para desplegar los componentes de Zabbix.
Siga estas instrucciones si instaló Zabbix mediante [Docker Compose](/manual/installation/install/containers#docker-compose).

1\. Compruebe todos los contenedores para identificar sus nombres y las versiones actuales de sus imágenes:

```bash
docker ps -a

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

2\. Vaya al repositorio Docker de Zabbix que clonó anteriormente, descargue las actualizaciones más recientes y cambie a la rama 8.0:

::: noteimportant
Si ha modificado `.env`, `compose.yaml` u otros archivos en su repositorio local, `git pull` puede sobrescribirlos.
Haga una copia de seguridad de cualquier cambio local antes de ejecutar este paso.
:::

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

3\. Despliegue los componentes de Zabbix utilizando el archivo Docker Compose actualizado:

```bash
# Con MySQL como base de datos:
docker compose -f ./compose.yaml up -d

# Con PostgreSQL como base de datos:
docker compose -f ./compose_pgsql.yaml up -d
```

::: noteclassic
Después de que todos los contenedores se vuelvan a crear e inicien, la recopilación de datos puede tardar entre 1 y 3 minutos en reanudarse.
Para obtener más información sobre la ejecución de contenedores de Zabbix, consulte [Docker Compose](/manual/installation/install/containers#docker-compose).
:::

4\. Verifique que la actualización se haya realizado correctamente comprobando los registros del contenedor (reemplace `zabbix-docker-zabbix-server-1` por el nombre del contenedor de su componente):

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

[comment]: # ({/408f59dc-d707ad1d})
