Actualizar contenedores Docker
Qué cubre este artículo sobre actualizaciones de Docker
- Cómo funcionan las actualizaciones de contenedores.
- Cómo actualizar imágenes y recrear contenedores.
- Cómo gestionar rollbacks y versiones.
- Automatización con Watchtower o scripts.
- Buenas prácticas para actualizaciones seguras.
Introducción: actualizar contenedores Docker
Los contenedores Docker se crean a partir de imágenes. Cuando se actualiza una imagen, el contenedor sigue ejecutándose con la versión anterior hasta que se recrea. Por eso docker pull por sí solo no es suficiente. Un proceso de actualización correcto descarga la nueva imagen, detiene el contenedor y lo reinicia con la imagen nueva. Quien actualiza regularmente obtiene parches de seguridad y nuevas funciones, pero también debe saber cómo gestionar la pérdida de datos e incompatibilidades.
Este artículo muestra cómo actualizar contenedores de forma segura y preparar rollbacks.
Términos clave
- Image: plantilla para un contenedor.
- Tag: etiqueta de versión de una imagen.
- Pull: descargar una nueva imagen.
- Recreate: recrear un contenedor con la imagen actual.
- Rollback: volver a una versión anterior.
- Downtime: tiempo durante el cual el servicio no está disponible.
- Backup: copia de seguridad antes de la actualización.
- Watchtower: herramienta para actualizar contenedores automáticamente.
Lo básico: pull y recreate
docker pull ollama/ollama:latest
docker stop ollama
docker rm ollama
docker run -d --name ollama -v ollama-data:/root/.ollama -p 11434:11434 ollama/ollama:latest
Con Compose:
docker compose pull
docker compose up -d
docker compose up -d recrea contenedores si la imagen ha cambiado.
Versiones y tags
En lugar de latest, usa tags específicos:
image: ollama/ollama:0.3.12
Esto mejora la reproducibilidad y permite rollbacks dirigidos.
Hacer backup antes de actualizar
Antes de actualizaciones importantes, respalda los volúmenes:
docker run --rm -v ollama-data:/data -v $(pwd):/backup alpine \
tar -czf /backup/ollama-data-pre-update.tar.gz -C /data .
Script de actualización
#!/bin/bash
set -e
SERVICE="ollama"
docker compose pull "$SERVICE"
docker compose up -d "$SERVICE"
docker image prune -f
Actualizaciones automatizadas con Watchtower
Watchtower es un contenedor que monitorea y actualiza otros contenedores:
services:
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WATCHTOWER_POLL_INTERVAL=86400
- WATCHTOWER_CLEANUP=true
restart: unless-stopped
Con WATCHTOWER_LABEL_ENABLE=true puedes actualizar solo contenedores específicos:
services:
app:
labels:
- "com.centurylinklabs.watchtower.enable=true"
Rolling updates en Swarm
En Docker Swarm, las actualizaciones se despliegan sin downtime:
docker service update --image mein-image:2.0 mein_service
Rollback
Si la nueva imagen causa problemas:
- Encuentra el tag de la imagen anterior.
- Ajusta tu archivo Compose o comando run.
- Recrea el contenedor.
docker compose down
docker compose up -d
Con un tag fijo:
image: ollama/ollama:0.3.10
Gestionar actualizaciones importantes
- Lee el changelog.
- Ten en cuenta los breaking changes.
- Usa un entorno de prueba si es posible.
- Haz backup antes de actualizar.
- Verifica el healthcheck después de la actualización.
Revisar logs después de actualizar
docker logs -f ollama
docker ps
Limpiar
Las imágenes antiguas ocupan espacio:
docker image prune -f
Elimina imágenes huérfanas. Los volúmenes no utilizados permanecen, pero se pueden revisar.
Consejos
- Usa tags fijos en lugar de
latestpara servicios críticos. - Actualiza regularmente, pero no demasiado frecuentemente.
- Establece ventanas de actualización.
- Minimiza el downtime.
- Configura monitoreo y alertas para problemas de actualización.
- Integra una estrategia de backup.
Errores comunes
- Usar
latest: actualizaciones incontroladas. - Sin backup: pérdida de datos si la actualización falla.
- Cambios en esquema de base de datos: la nueva versión rompe datos antiguos.
- Sin planificación de downtime: el servicio no está disponible.
- Acumulación de imágenes antiguas: el disco se llena.
- Actualizar mientras está en uso: los usuarios notan la interrupción.
Enlaces y recursos adicionales
- BotServ.de Docker Compose
- BotServ.de Docker Backup
- BotServ.de Docker Volumes
- BotServ.de Docker Monitoring
FAQ: actualizaciones de Docker
¿Cada cuánto debo actualizar los contenedores? Regularmente, pero no en cada cambio menor. Las actualizaciones de seguridad importantes deben aplicarse pronto.
¿Debería usar latest?
Está bien para homelabs, pero usa tags fijos para servicios críticos.
¿Qué es Watchtower? Una herramienta que actualiza contenedores automáticamente.
¿Puede una actualización eliminar datos? Solo si los volúmenes no están respaldados o la nueva versión es incompatible.
¿Cómo hago un rollback? Establece el tag de la imagen antigua en tu archivo Compose y reinicia.
Fuentes y lecturas adicionales
- Docker Compose Update: https://docs.docker.com/compose/reference/up/
- Watchtower: https://github.com/containrrr/watchtower
- Docker Image Prune: https://docs.docker.com/engine/reference/commandline/image_prune/
Resumen: actualizar contenedores Docker
Las actualizaciones de Docker son simples cuando entiendes cómo funcionan pull, up -d y el recreate. En servicios productivos, los tags fijos, backups y estrategias claras de rollback deben ser estándar. Herramientas como Watchtower automatizan actualizaciones, pero requieren atención especial en contenedores críticos. Quien actualiza regularmente, limpia imágenes antiguas y respalda volúmenes, mantiene su stack seguro y actualizado.


