Capítulo 6 · 6.4
Actualizar contenedores, hacer limpieza y limitar los logs
Actualizar
Un contenedor no se actualiza solo. Descargue las nuevas imágenes y vuelva a iniciar los contenedores:
anna@web1:~$ cd /srv/diensten
anna@web1:/srv/diensten$ sudo docker compose pull
anna@web1:/srv/diensten$ sudo docker compose up -d
Solo se vuelven a crear los contenedores que tienen una imagen nueva. Sus datos están en volúmenes y se conservan.
- Antes de una actualización importante, lea las notas de la versión (release notes) de la aplicación. A veces primero hay que ajustar algo.
- Antes de actualizar, haga una copia de seguridad de los volúmenes (consulte Cómo incluir correctamente las bases de datos y los volúmenes de Docker) o, como mínimo, un snapshot.
- Una versión fija en la etiqueta, como
vaultwarden/server:1.37.5, evita sorpresas. En ese caso, usted mismo la sube cuando quiera. Conlatestobtendrá la más reciente en cadapull.
Hacer limpieza
Las imágenes antiguas permanecen en su disco. Compruebe cuánto espacio utiliza Docker y haga limpieza:
anna@web1:~$ sudo docker system df
anna@web1:~$ sudo docker image prune
docker image prune solo elimina las imágenes sin nombre que ya no pertenecen a nada. Con -a elimina todas las imágenes que no utiliza ningún contenedor.
Atención: Tenga cuidado con docker volume prune y docker system prune --volumes. Con ellos puede eliminar datos que todavía necesita.
Limitar los logs
Docker guarda la salida de cada contenedor en un archivo de log que, de forma predeterminada, crece sin límite. Establezca un límite en /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
anna@web1:~$ sudo systemctl restart docker
anna@web1:~$ cd /srv/diensten && sudo docker compose up -d --force-recreate
El límite solo se aplica a los contenedores que se creen después; por eso hay que volver a crearlos.
Detener y eliminar
| Comando | ¿Qué hace? |
|---|---|
sudo docker compose stop | Detiene los contenedores, sin eliminar nada |
sudo docker compose down | Elimina los contenedores y la red; los volúmenes se conservan |
sudo docker compose down -v | Elimina también los volúmenes: todos sus datos desaparecen |
