Curso
Actualizar Docker puede significar tres cosas completamente diferentes. Es posible que tengas que actualizar Docker Engine, Docker Desktop o las imágenes en las que se ejecutan tus contenedores.
La mayoría de los programadores no saben cuál es la que realmente deben actualizar, por lo que o bien actualizan todo (y se arriesgan a estropear su configuración) o bien evitan por completo las actualizaciones (y se exponen a vulnerabilidades). Para actualizar Docker de forma segura, solo tienes que saber qué estás actualizando y seguir los pasos adecuados para cada caso.
En este artículo, te guiaré a través de las rutas de actualización más seguras y comunes sin lugar a dudas. Aprenderás qué hace realmente cada tipo de actualización de Docker, cuándo necesitas cada una de ellas y cómo ejecutar las actualizaciones paso a paso sin dañar tus contenedores existentes.
Si eres nuevo en Docker, comienza con Introducción a Docker para sentar las bases antes de trabajar en las actualizaciones yel mantenimiento.
¿Qué significa realmente «actualizar Docker»?
Como ya he mencionado, el término «actualizar Docker» puede referirse a tres cosas diferentes, y si las confundes, puedes estropear accidentalmente un sistema que funciona correctamente. Puedes actualizar Docker Engine (el software principal que ejecuta los contenedores), Docker Desktop (la aplicación GUI) o las imágenes de contenedor que utilizan tus aplicaciones.
Cada tipo de actualización afecta a tu sistema de manera diferente. Déjame explicarte.
Actualización de Docker Engine frente a actualización de imágenes
Docker Engine es el tiempo de ejecución que gestiona tus contenedores.
Al actualizar Docker Engine, estás actualizando el software que crea, ejecuta y gestiona contenedores en tu sistema. Se trata de un cambio a nivel del sistema que afecta al funcionamiento de Docker. Estás instalando nuevos binarios, actualizando el demonio y, potencialmente, cambiando la forma en que Docker interactúa con tu sistema operativo.
Las imágenes de contenedor son los planos a partir de los cuales se ejecutan tus contenedores.
Actualizar una imagen significa extraer una versión más reciente de la aplicación empaquetada dentro de ese contenedor. Por ejemplo, si estás ejecutando PostgreSQL 14 en un contenedor y deseas actualizar a PostgreSQL 18, actualizar la imagen significa extraer esa nueva versión. El motor Docker en sí no cambia, solo el software dentro de los contenedores.
Lo importante es recordar que actualizar Docker Engine puede afectar a todos tus contenedores, mientras que actualizar una imagen solo afecta a los contenedores creados a partir de esa imagen específica.
¿Qué ocurre con los contenedores en ejecución?
Las actualizaciones de Docker Engine no reinician automáticamente tus contenedores.
Cuando actualizas Docker Engine en Linux, el demonio Docker se reinicia, pero tus contenedores siguen funcionando en la mayoría de las configuraciones modernas. Docker utiliza una función llamada«restauración en vivo» ( ) que mantiene los contenedores activos durante las actualizaciones del demonio. Puedes comprobar si está habilitado ejecutando docker info y buscando «Live Restore Enabled: true».
Docker Desktop es otra historia.
En macOS y Windows, al actualizar Docker Desktop se detendrán todos los contenedores en ejecución. La máquina virtual Docker se reinicia por completo durante el proceso de actualización. Tus contenedores no se iniciarán automáticamente una vez completada la actualización. Tendrás que iniciarlos manualmente o utilizar políticas de reinicio.
Las actualizaciones de imágenes requieren que vuelvas a crear contenedores.
Al descargar una nueva versión de la imagen, los contenedores en ejecución no se ven afectados en absoluto. Si deseas utilizar la imagen actualizada, debes detener el contenedor antiguo, eliminarlo y crear uno nuevo a partir de la imagen actualizada.
Por eso es importante comprender la diferencia entre las actualizaciones del motor y las actualizaciones de imagen. Uno puede requerir una planificación del tiempo de inactividad, el otro no.
Por qué debes actualizar Docker
Las versiones obsoletas de Docker te exponen a vulnerabilidades de seguridad conocidas y problemas de compatibilidad. Si eso no te convence, sigue leyendo.
Seguridad y estabilidad
Cada versión de Docker corrige los fallos de seguridad descubiertos en versiones anteriores.
Utilizar una versión antigua significa que eres vulnerable a los exploits que los atacantes ya conocen. Los investigadores de seguridad y la comunidad Docker buscan y notifican activamente estos problemas, y la empresa responsable de Docker los soluciona en las nuevas versiones. Si no actualizas, estás dejando la puerta abierta.
Además, la estabilidad mejora con cada lanzamiento. Las correcciones de errores en las versiones más recientes solucionan problemas que molestan a la mayoría de los usuarios y que podrían inutilizar tus contenedores en producción.
No es necesario actualizar cada vez que sale una nueva versión, pero si te saltas las actualizaciones durante meses, te estarás perdiendo docenas de parches de seguridad y mejoras de estabilidad.
Compatibilidad con sistemas modernos
Los sistemas operativos y las herramientas de desarrollo avanzan independientemente de si actualizas Docker o no.
Tu sistema operativo recibe actualizaciones, tus herramientas de CI/CD obtienen nuevas funciones y las plataformas de orquestación como Kubernetes acabarán dejando de ser compatibles con las versiones antiguas de Docker. Si utilizas Docker de hace dos años, empezarás a ver advertencias de compatibilidad, luego errores y, finalmente, fallos totales.
Las imágenes de contenedores modernas también esperan nuevas funciones de Docker. Los creadores de imágenes utilizan compilaciones en varias etapas, optimizaciones de BuildKit y controladores de almacenamiento más recientes que las versiones antiguas de Docker no admiten. Es posible que extraigas una imagen que simplemente no funcionará en tu configuración obsoleta.
Si tienes pensado utilizar herramientas de orquestación junto con Docker, nuestra Introducción a Kubernetes es un curso excelente para ponerte en marcha.
Cómo comprobar tu versión actual de Docker
Antes de actualizar, es recomendable comprobar tu versión actual.
Verificación de la versión instalada
Ejecuta este comando para ver tu versión actual de Docker:
docker --version
Esto te muestra la versión de Docker Engine instalada en tu sistema:

El número de versión sigue el sistema de versionado semántico: major.minor.patch. En este ejemplo, 29 es la versión principal, 1 es la versión secundaria y 3 es la versión de parche.
Para obtener más detalles sobre tu configuración de Docker, ejecuta este comando:
docker info

Muestra una gran cantidad de información sobre tu instalación de Docker, incluida la versión del servidor, el controlador de almacenamiento, la versión del kernel y si están habilitadas funciones como la restauración en vivo. No necesitas toda esta información para una actualización básica, pero resulta útil para solucionar problemas.
Decidir si es necesaria una actualización
Las actualizaciones menores suelen ser seguras y deben aplicarse con regularidad.
Si utilizas Docker 29.1.0 y la versión 29.1.3 está disponible, se trata de una actualización menor con correcciones de errores y parches de seguridad. Estas actualizaciones rara vez causan problemas, por lo que es recomendable que las apliques cuando te resulte conveniente.
Las actualizaciones de versiones principales requieren más precaución. Pasar de Docker 24 a Docker 29 puede introducir cambios importantes, funciones obsoletas o nuevos requisitos. Antes de actualizar entre versiones principales, consulta las notas de la versión de Docker para tu versión de destino para ver qué ha cambiado.
Puedes encontrar la última versión de Docker en la documentación oficial de Docker o en la página de lanzamientos de GitHub. Compáralo con lo que te muestra docker –version para ver cuánto te queda por recorrer.
Cómo actualizar Docker Engine
El proceso de actualización depende de si estás ejecutando Docker Engine en Linux o Docker Desktop en macOS/Windows.
Actualización de Docker en Linux
Linux utiliza el gestor de paquetes de tu sistema para actualizar Docker Engine.
Los comandos exactos varían según la distribución, pero el proceso es el mismo:
- Actualiza tu lista de paquetes
- Actualizar Docker
Así es como funciona en sistemas basados en Ubuntu y Debian:
sudo apt update
sudo apt upgrade docker-ce docker-ce-cli containerd.io
Para sistemas basados en Red Hat, como CentOS o Fedora, ejecuta lo siguiente:
sudo yum update docker-ce docker-ce-cli containerd.io
El demonio Docker se reinicia automáticamente durante la actualización.
Si tienes habilitada la restauración en vivo (compruébalo en docker info), tus contenedores en ejecución seguirán funcionando. Si no es así, se detendrán y tendrás que iniciarlos manualmente.
Una vez completada la actualización, puedes verificar la nueva versión:
docker --version
Si instalaste Docker utilizando el script de conveniencia en lugar de los repositorios de paquetes, tendrás que descargar y ejecutar el script de nuevo para actualizarlo.
Actualización de Docker Desktop en macOS y Windows
Docker Desktop gestiona las actualizaciones de forma diferente a Docker Engine en Linux.
La actualización automática está habilitada de forma predeterminada. Docker Desktop comprueba si hay actualizaciones cuando se inicia y muestra una notificación cuando hay una nueva versión disponible. Haz clic en la notificación y Docker Desktop descargará e instalará la actualización por ti.
Si prefieres las actualizaciones manuales, abre la configuración de Docker Desktop y busca la opción «Buscar actualizaciones». Puedes desactivar las actualizaciones automáticas aquí y comprobarlo manualmente cuando quieras.

También puedes actualizar Docker manualmente.
Solo tienes que descargar el último instalador de Docker Desktop desde el sitio web de Docker y ejecutarlo. El instalador detectará tu instalación actual y la actualizará sin eliminar tus imágenes ni contenedores.
Recuerda que Docker Desktop detendrá todos los contenedores durante la actualización. Toda la máquina virtual Docker se reinicia, por lo que debes prever un par de minutos de tiempo de inactividad. Tus contenedores no se reiniciarán automáticamente a menos que los hayas configurado con políticas de reinicio como --restart always.
Después de actualizar, abre Docker Desktop y deja que se inicie completamente antes de ejecutar docker –version para confirmar la nueva versión.
Gestionar varios contenedores de forma individual no es algo de lo que enorgullecerse. Echa un vistazo a nuestra Guía de Docker Compose para obtener más información sobre las compilaciones multicontensor.
Cómo verificar la actualización de Docker
Ahora Docker debería estar actualizado, pero vamos a comprobar si realmente es así.
Confirmar la versión instalada
Comprueba primero el número de versión:
docker --version
La salida debería mostrar tu versión objetivo. Si sigue apareciendo la versión antigua, la actualización no se ha completado correctamente o es necesario que reinicies tu terminal para obtener los nuevos binarios.
La versión no ha cambiado en mi equipo, pero eso es solo porque ya tenía la última versión.
El siguiente paso es comprobar el estado del demonio Docker:
docker info
Si falla con el mensaje «No se puede conectar al demonio Docker», significa que el demonio no se está ejecutando. En Linux, reinícialo con el siguiente comando:
sudo systemctl restart docker
En macOS y Windows, solo tienes que abrir Docker Desktop y esperar a que se inicie.
Aprende los comandos esenciales para el trabajo diario con contenedores en nuestro reciente artículo que muestra los 18 comandos principales de Docker.
Ejecutar un contenedor de prueba
Para comprobar que nada se ha estropeado tras la actualización, prueba a extraer y ejecutar un contenedor sencillo:
docker run hello-world
Este comando descarga la pequeña imagen hello-world y la ejecuta. Verás un mensaje que explica que Docker funciona correctamente:

Cómo actualizar imágenes de Docker después de una actualización del motor
La actualización de Docker Engine no actualiza las imágenes de tus contenedores; debes gestionarlas por separado.
Obtener versiones más recientes de las imágenes
Puedes ejecutar el comando docker pull para obtener la última versión de una imagen:
docker pull postgres
Esto extrae la versión más reciente de la imagen de PostgreSQL con la etiqueta « latest ». Pero no siempre significa lo que tú crees que significa: es solo una etiqueta que los administradores de imágenes pueden asignar a cualquier versión que deseen.
Siempre es recomendable ser explícito con las etiquetas para evitar sorpresas:
docker pull postgres:18

Esto descarga específicamente la versión 18 de PostgreSQL. Si sale la versión 18.1, al volver a ejecutar este comando se obtendrá la imagen actualizada 18.1, sin salir de la serie de la versión 18.
Para otras imágenes, comprueba primero sus versiones actuales con el comando « docker images ». A continuación, descarga las versiones más recientes según sea necesario. Tus contenedores existentes seguirán ejecutando la imagen antigua hasta que los vuelvas a crear con la nueva.
Reconstrucción de imágenes personalizadas
Si creas tus propias imágenes con Dockerfiles, debes volver a crearlas después de descargar las actualizaciones de la imagen base.
Supongamos que tu Dockerfile comienza con FROM python:3.14. Incluso si descargas la última imagen de python:3.14, tu imagen personalizada seguirá utilizando las capas antiguas almacenadas en caché. Reconstruye para recoger las actualizaciones:
docker build --no-cache -t myapp:latest .
Esto ignora todas las capas almacenadas en caché y reconstruye todo desde cero. Tarda más tiempo, pero garantiza que se utilizan las imágenes base y las dependencias más recientes.
Después de la reconstrucción, detén los contenedores antiguos e inicia otros nuevos con la imagen actualizada; las actualizaciones no se aplican automáticamente a los contenedores en ejecución.
¿Necesitas liberar espacio en disco después de actualizar? Nuestro tutorial sobre Docker Prune te muestra cómo limpiar imágenes y contenedores sin usar de forma segura.
Problemas comunes con las actualizaciones de Docker
Las actualizaciones de Docker fallan de forma predecible y la mayoría de los problemas tienen soluciones rápidas. Déjame mostrarte un par que he encontrado personalmente.
Errores de permiso, servicio e instalación
Los errores de «Permiso denegado» significan que tu usuario no puede acceder al socket de Docker.
En Linux, añade tu usuario al grupo docker:
sudo usermod -aG docker $USER
Cierra la sesión y vuelve a iniciarla para que el cambio surta efecto. Después de esto, no deberías necesitar sudo para los comandos de Docker.
Los errores «No se puede conectar al demonio Docker» significa que Docker no se está ejecutando.
Comprueba el estado del servicio:
sudo systemctl status docker
Si se ha detenido o ha fallado, inícialo:
sudo systemctl start docker
Si no se inicia, revisa los registros con journalctl -u docker para ver qué está fallando.
En macOS y Windows, simplemente inicia la aplicación Docker Desktop.
Los conflictos entre paquetes durante la instalación se producen cuando los paquetes antiguos de Docker interfieren con los nuevos.
Puedes ejecutar este comando para eliminar los paquetes antiguos de Docker antes de instalar la versión actualizada:
sudo apt remove docker docker-engine docker.io containerd runc
A continuación, vuelve a instalar Docker siguiendo las instrucciones de instalación oficiales para tu distribución.
Revertir o degradar Docker
Si la actualización daña tu configuración, puedes volver a una versión anterior.
En Linux, busca las versiones disponibles en tu gestor de paquetes:
apt list -a docker-ce
Instalar una versión anterior específica:
sudo apt install <specific-version>
Reemplaza la etiqueta con la versión que necesites. Tus contenedores e imágenes permanecen intactos durante la degradación.
En macOS y Windows, la reversión es más sencilla. Descarga el instalador anterior del archivo de versiones de Docker y ejecútalo. El instalador sustituye la versión actual por la anterior sin tocar tus contenedores ni imágenes.
Mejores prácticas para la actualización de Docker
El mejor consejo es mantener Docker actualizado regularmente. Si no lo has hecho en años, busca en las páginas de lanzamiento cualquier cambio importante.
Mantener Docker actualizado de forma segura
Configura un recordatorio para comprobar las actualizaciones de Docker en lugar de esperar a que surjan problemas.
Comprueba si hay actualizaciones cada mes, no porque tengas que instalar todas y cada una de ellas, sino porque necesitas saber qué hay disponible. Y necesitas algo que te lo recuerde. Los parches de seguridad son más importantes que las actualizaciones de funciones, así que priorízalos cuando se publiquen.
Una buena práctica es documentar tu configuración actual antes de actualizar. Anota tu versión de Docker, enumera los contenedores en ejecución con docker ps y toma nota de cualquier configuración personalizada. Si algo se rompe, sabrás exactamente qué ha cambiado.
Si estás ejecutando Docker en producción, prueba primero las actualizaciones en una máquina de desarrollo. Crea un entorno similar, actualiza Docker allí y asegúrate de que tus contenedores sigan funcionando antes de tocar la producción.
Cuándo automatizar las actualizaciones
La automatización tiene sentido en entornos de desarrollo donde el tiempo de inactividad no importa.
Puedes configurar Docker Desktop para que se actualice automáticamente o configurar actualizaciones desatendidas en Linux para los parches de seguridad. Esto funciona bien en equipos de desarrollo locales, donde un reinicio no interrumpe los servicios críticos.
No automatices las actualizaciones en producción sin las medidas de seguridad adecuadas.
Necesitas supervisión, estrategias de reversión y pruebas antes de aplicar actualizaciones a los sistemas que ejecutan cargas de trabajo reales. Las actualizaciones de Docker pueden causar problemas, por lo que es recomendable que haya una persona supervisando los sistemas de producción.
Las actualizaciones manuales mediante recordatorios mensuales son mi método preferido y nunca he tenido ningún problema.
Conclusión
Para actualizar Docker, primero debes comprender qué es lo que realmente estás actualizando.
Las actualizaciones de Docker Engine, las actualizaciones de Docker Desktop y las actualizaciones de imágenes son tres cosas diferentes con distintos impactos en tu sistema. Averigua cuál necesitas, sigue el proceso adecuado para tu plataforma y haz pruebas después. Eso es todo.
Pon un recordatorio en tu teléfono. Comprueba mensualmente si hay actualizaciones, da prioridad a los parches de seguridad y documenta lo que estás ejecutando antes de realizar cualquier cambio. Las actualizaciones no deberían ser motivo de estrés, sino una tarea de mantenimiento rutinaria.
En entornos de producción, recuerda que tus contenedores dependen del correcto funcionamiento de Docker. Trata las actualizaciones con el mismo cuidado que dedicarías a cualquier otro cambio crítico en la infraestructura: de forma deliberada, con pruebas y con un plan de reversión por si algo sale mal.
Ahora ya sabes cómo actualizar Docker. El siguiente paso es ampliar tus conocimientos sobre contenedores con nuestro curso Docker intermedio. Aprenderás todo sobre redes, imágenes de contenedores avanzadas y Docker Compose.
Preguntas frecuentes
¿Cómo puedes automatizar las actualizaciones de los contenedores Docker con Watchtower?
Watchtower es un contenedor que supervisa los contenedores en ejecución y los actualiza automáticamente cuando hay nuevas versiones de imágenes disponibles. Ejecutas Watchtower como un contenedor con acceso al socket Docker, y este comprueba periódicamente si hay actualizaciones de imágenes, descarga las nuevas versiones y reinicia tus contenedores con las imágenes actualizadas. Esto funciona bien en entornos de desarrollo, pero hay que tener cuidado en entornos de producción: las actualizaciones automáticas pueden causar problemas si no se realizan las pruebas adecuadas y no se cuentan con estrategias de reversión.
¿Cuáles son las mejores prácticas para configurar un registro privado de Docker?
Protege tu registro privado con certificados TLS y autenticación para evitar el acceso no autorizado. Utiliza backends de almacenamiento como S3 o Azure Blob Storage para obtener escalabilidad y fiabilidad, en lugar del almacenamiento en disco local. Implementa el escaneo de imágenes en busca de vulnerabilidades y configura la recolección de basura para eliminar capas no utilizadas y ahorrar espacio. También debes configurar controles de acceso para que los equipos solo puedan enviar y extraer datos de los repositorios que están autorizados a utilizar.
¿En qué se diferencia una implementación canaria de una implementación azul-verde?
La implementación azul-verde ejecuta dos entornos de producción idénticos: tú implementas la nueva versión en el entorno inactivo, la pruebas y, a continuación, cambias todo el tráfico de una sola vez. La implementación Canary lanza gradualmente la nueva versión primero a un pequeño subconjunto de usuarios, supervisa si hay problemas y, a continuación, aumenta lentamente el tráfico a la nueva versión, mientras que la versión antigua sigue gestionando la mayoría de las solicitudes. Las implementaciones canarias detectan problemas con menos impacto para los usuarios, mientras que las implementaciones azul-verde ofrecen una reversión instantánea al cambiar de nuevo los entornos.
¿Cuáles son las ventajas de utilizar compilaciones multietapa en Docker?
Las compilaciones multietapa te permiten utilizar varias instrucciones FROM en un único archivo Dockerfile, lo que significa que puedes compilar o crear tu aplicación en una sola etapa con todas las herramientas de compilación y, a continuación, copiar solo los artefactos finales a una imagen de tiempo de ejecución mínima. Esto reduce drásticamente el tamaño de la imagen, ya que no se envían dependencias de compilación, compiladores ni código fuente en producción. También obtienes compilaciones más rápidas gracias a un mejor almacenamiento en caché de capas y una separación más clara entre los entornos de compilación y de tiempo de ejecución.
¿Cómo puedes supervisar eficazmente las métricas de rendimiento de los contenedores Docker?
Utiliza docker stats para obtener métricas rápidas en tiempo real sobre la CPU, la memoria, la red y la E/S del disco para todos los contenedores en ejecución. Para supervisar la producción, herramientas como Prometheus con cAdvisor recopilan métricas detalladas de los contenedores y las almacenan para su análisis y para generar alertas. Docker también expone métricas a través de su API que puedes recopilar con plataformas de supervisión. Configura alertas para el uso elevado de recursos, los reinicios de contenedores y las comprobaciones de estado fallidas para detectar los problemas antes de que afecten a los usuarios.


