Compartir comentarios
Las respuestas se generan en base a la documentación.

Notas de la versión de Docker Engine 25.0

Esta página describe los cambios más recientes, adiciones, problemas conocidos y correcciones para Docker Engine versión 25.0.

Para obtener más información sobre:

25.0.5

2024-03-19

Para obtener una lista completa de las solicitudes de extracción (pull requests) y los cambios en esta versión, consulta los hitos (milestones) correspondientes en GitHub:

Seguridad

Esta versión contiene una corrección de seguridad para CVE-2024-29018, una posible filtración de datos de redes 'internas' a través de servidores DNS autoritativos.

Correcciones de errores y mejoras

  • CVE-2024-29018: No reenviar solicitudes a servidores DNS externos para un contenedor que solo está conectado a una red 'interna'. Anteriormente, las solicitudes se reenviaban si el servidor DNS del host se ejecutaba en una dirección de loopback, como 127.0.0.53 de systemd. moby/moby#47589

  • plugin: corregir el montaje de /etc/hosts al ejecutarse en UserNS (espacio de nombres de usuario). moby/moby#47588

  • rootless: corregir error open /etc/docker/plugins: permission denied. moby/moby#47587

  • Corregir fugas de espacio en disco provocadas por múltiples ejecuciones paralelas de docker build. moby/moby#47527

25.0.4

2024-03-07

Para obtener una lista completa de las solicitudes de extracción y los cambios en esta versión, consulta los hitos correspondientes en GitHub:

Correcciones de errores y mejoras

  • Restaurar nombres DNS para contenedores en la red "nat" predeterminada en Windows. moby/moby#47490
  • Corregir que docker start falle al usarse con --checkpoint. moby/moby#47466
  • No aplicar nuevas reglas de validación para redes de swarm existentes. moby/moby#47482
  • Restaurar conectividad IP entre el host y los contenedores en una red bridge interna. moby/moby#47481
  • Corregir una regresión introducida en la v25.0 que impedía al constructor clásico añadir archivos tar con xattrs creados en un sistema operativo que no es Linux. moby/moby#47483
  • Almacén de imágenes de containerd: Corregir que la descarga de la imagen no emitiera el estado Pulling fs layer status. moby/moby#47484
  • API: Para preservar la compatibilidad hacia atrás, hacer que los montajes de solo lectura no sean recursivos por defecto al utilizar clientes más antiguos (versiones de la API < v1.44). moby/moby#47393
  • API: GET /images/{id}/json omite el campo Created (anteriormente era 0001-01-01T00:00:00Z) si dicho campo faltaba en la configuración de la imagen. moby/moby#47451
  • API: Rellenar un campo Created faltante en GET /images/{id}/json con 0001-01-01T00:00:00Z para versiones de la API <= 1.43. moby/moby#47387
  • API: Corregir una regresión que causaba que los fallos de conexión del socket de la API informaran un fallo de negociación de la versión de la API en su lugar. moby/moby#47470
  • API: Preservar la configuración del endpoint proporcionada en una solicitud de creación de contenedor de la API, cuando se especifica una dirección MAC para todo el contenedor, pero el nombre o id de NetworkMode no es el mismo que el nombre o id utilizado en NetworkSettings.Networks. moby/moby#47510

Actualizaciones de empaquetado

25.0.3

2024-02-06

Para obtener una lista completa de las solicitudes de extracción y los cambios en esta versión, consulta los hitos correspondientes en GitHub:

Correcciones de errores y mejoras

  • Almacén de imágenes de containerd: Corregir un error por el cual docker image history fallaba si no se encontraba un manifiesto en el almacén de contenido. moby/moby#47348

  • Asegurar que la dirección MAC generada no se restaure al reiniciar el contenedor, pero que se preserve la dirección MAC configurada. moby/moby#47304

    Note
    • Los contenedores creados con la versión 25.0.0 de Docker Engine pueden tener direcciones MAC duplicadas. Deben volver a crearse.
    • Los contenedores con direcciones MAC definidas por el usuario creados con las versiones 25.0.0 o 25.0.1 de Docker Engine reciben nuevas direcciones MAC al iniciarse con la versión 25.0.2 de Docker Engine. También deben volver a crearse.
  • Corregir que docker save <image>@<digest> produzca un archivo OCI con índice sin manifiestos. moby/moby#47294

  • Corregir un error que impedía que las redes bridge se crearan con un MTU superior a 1500 en RHEL y CentOS 7. moby/moby#47308, moby/moby#47311

  • Corregir un error por el cual los contenedores no pueden comunicarse a través de una red internal. moby/moby#47303

  • Corregir un error por el cual se ignoraba el valor de la opción de daemon ipv6. moby/moby#47310

  • Corregir un error por el cual intentar instalar un plugin utilizando una revisión de resumen causaba un pánico. moby/moby#47323

  • Corregir una posible condición de carrera en el supervisor gestionado de containerd. moby/moby#47313

  • Corregir un problema con el controlador de logs journald que impedía que los logs de los contenedores se siguieran correctamente en systemd versión 255. moby/moby#47243

  • seccomp: Actualizar el perfil seccomp integrado para incluir llamadas al sistema añadidas en los kernels v5.17 - v6.7 para alinear el perfil con el utilizado por containerd. moby/moby#47341

  • Windows: Corregir que la caché no se use al compilar imágenes basadas en versiones de Windows anteriores a la versión del host. moby/moby#47307, moby/moby#47337

Actualizaciones de empaquetado

25.0.2

2024-01-31

Para obtener una lista completa de las solicitudes de extracción y los cambios en esta versión, consulta los hitos correspondientes en GitHub:

Seguridad

Esta versión contiene correcciones de seguridad para los siguientes CVE que afectan a Docker Engine y sus componentes.

CVEComponenteVersión de correcciónSeveridad
CVE-2024-21626runc1.1.12Alta, CVSS 8.6
CVE-2024-23651BuildKit1.12.5Alta, CVSS 8.7
CVE-2024-23652BuildKit1.12.5Alta, CVSS 8.7
CVE-2024-23653BuildKit1.12.5Alta, CVSS 7.7
CVE-2024-23650BuildKit1.12.5Media, CVSS 5.5
CVE-2024-24557Docker Engine25.0.2Media, CVSS 6.9

Los impactos potenciales de las vulnerabilidades anteriores incluyen:

  • Acceso no autorizado al sistema de archivos del host
  • Comprometer la integridad de la caché de construcción
  • En el caso de CVE-2024-21626, un escenario que podría conducir a un escape completo del contenedor

Para obtener más información sobre los problemas de seguridad abordados en esta versión, consulta la publicación del blog. Para obtener detalles sobre cada vulnerabilidad, consulta el aviso de seguridad correspondiente:

Actualizaciones de empaquetado

25.0.1

2024-01-23

Para obtener una lista completa de las solicitudes de extracción y los cambios en esta versión, consulta los hitos correspondientes en GitHub:

Correcciones de errores y mejoras

  • API: Corregir un código de estado HTTP incorrecto para contenedores con una configuración de red no válida creados antes de actualizar a Docker Engine v25.0. moby/moby#47159
  • Asegurar que la dirección MAC basada en la dirección IP del contenedor se vuelva a generar cuando el contenedor se detiene y se reinicia, en caso de que las direcciones IP/MAC generadas se hayan reutilizado. moby/moby#47171
  • Corregir que host-gateway-ip no funcione durante la construcción cuando no está configurado a través de la configuración. moby/moby#47192
  • Corregir un error que impedía cambiar el nombre de un contenedor dos veces. moby/moby#47196
  • Corregir un problema que causaba que al inspeccionar los contenedores se añadiera su ID corto a su alias de red. moby/moby#47182
  • Corregir un problema al detectar si un contexto de construcción remoto es un repositorio Git. moby/moby#47136
  • Corregir un problema con el orden de las capas en los manifiestos OCI. moby/moby#47150
  • Corregir error de montaje de volumen al pasar una opción de montaje addr o ip. moby/moby#47185
  • Mejorar el mensaje de error relacionado con los atributos extendidos que no se pueden establecer debido a nombres de atributos sin un espacio de nombres adecuado. moby/moby#47178
  • Swarm: Se corrigió que start_interval no se pasara a la configuración del contenedor. moby/moby#47163

Actualizaciones de empaquetado

25.0.0

2024-01-19

Para obtener una lista completa de las solicitudes de extracción y los cambios en esta versión, consulta los hitos correspondientes en GitHub:

Note

En versiones anteriores de Docker Engine, los montajes recursivos (submontajes) siempre se montaban como editables, incluso al especificar un montaje de solo lectura. Este comportamiento ha cambiado en la v25.0.0, para hosts que se ejecutan en la versión de kernel 5.12 o posterior. Ahora, los montajes bind de solo lectura son recursivamente de solo lectura por defecto.

Para obtener el mismo comportamiento que en las versiones anteriores, puedes especificar la opción bind-recursive para la bandera --mount.

$ docker run --mount type=bind,src=SRC,dst=DST,readonly,bind-recursive=writable IMAGE

Esta opción no es compatible con la bandera -v o --volume. Para obtener más información, consulta Montajes recursivos.

Nuevas características

  • El daemon ahora utiliza el valor predeterminado de systemd LimitNOFILE. En versiones anteriores de Docker Engine, este límite se establecía en infinity. Esto causaba problemas con versiones recientes de systemd, donde se aumentaba el límite máximo (hard limit), lo que provocaba que los programas que ajustaban sus comportamientos basándose en ulimits consumieran una gran cantidad de memoria. moby/moby#45534

    El nuevo ajuste hace que los contenedores se comporten de la misma manera que los programas que se ejecutan en el host, pero puede causar que los programas que hacen suposiciones incorrectas basadas en el límite flexible (soft limit) se comporten de manera incorrecta. Para obtener el comportamiento anterior, puedes establecer LimitNOFILE=1048576.

    Este cambio actualmente solo afecta a los contenedores de compilación creados con docker build cuando se utiliza BuildKit con el controlador docker. A partir de Docker Engine v29.0 (containerd v2.1.5), este límite se aplica a todos los contenedores, no solo a los contenedores de compilación.

    Si experimentas problemas con el ulimit más alto en systemd v240 o posterior, considera añadir un archivo drop-in o override del sistema para configurar los ajustes de ulimit para tu instalación. La documentación de Flatcar Container Linux tiene un excelente artículo que cubre este tema en detalle.

  • Añadir rastreo con OpenTelemetry. moby/moby#45652, moby/moby#45579

  • Añadir soporte para dispositivos CDI en Linux. moby/moby#45134, docker/cli#4510, moby/moby#46004

  • Añadir un intervalo adicional para ser utilizado por las comprobaciones de estado durante el periodo de inicio del contenedor. moby/moby#40894, docker/cli#4405, moby/moby#45965

  • Añadir una bandera --log-format a dockerd para controlar el formato de registro de logs: texto (predeterminado) o JSON. moby/moby#45737

  • Añadir soporte para montajes recursivos de solo lectura. moby/moby#45278, moby/moby#46037

  • Añadir soporte para filtrar imágenes basadas en marcas de tiempo con docker image ls --filter=until=<timestamp>. moby/moby#46577

Correcciones de errores y mejoras

  • API: Corregir mensaje de error para políticas no válidas en ValidateRestartPolicy. moby/moby#46352
  • API: Actualizar el endpoint /info para usar singleflight. moby/moby#45847
  • Añadir un mensaje de error cuando se especifica un nombre de archivo Dockerfile con -f y también se utiliza stdin. docker/cli#4346
  • Añadir soporte para los campos mac-address y link-local-ip en el formato largo de --network. docker/cli#4419
  • Añadir soporte para especificar múltiples banderas --network con docker container create y docker run. moby/moby#45906
  • Habilitar automáticamente IPv6 en una red cuando se especifica una subred IPv6. moby/moby#46455
  • Añadir soporte para redes overlay a través de transporte IPv6. moby/moby#46790
  • La recarga de la configuración ahora es más robusta: si hay un error durante el proceso de recarga de la configuración, no se aplica ningún cambio. moby/moby#43980
  • Restauración en vivo (Live restore): Los contenedores con eliminación automática (docker run --rm) ya no se eliminan a la fuerza al reiniciar el motor. moby/moby#46857
  • Restauración en vivo: a los contenedores que se restauran en vivo ahora se les dará otro período de inicio de comprobación de estado cuando el daemon se reinicie. moby/moby#47051
  • El estado de salud del contenedor se escribe en el disco con menos frecuencia, reduciendo el desgaste del almacenamiento flash. moby/moby#47044
  • Asegurar que los nombres de red sean únicos. moby/moby#46251
  • Asegurar que los metadatos de capa overlay2 sean correctos. moby/moby#46471
  • Corregir el mensaje de progreso Downloading al descargar una imagen. moby/moby#46515
  • Corregir NetworkConnect y ContainerCreate con una validación de datos mejorada, y devolver todos los errores de validación a la vez. moby/moby#46183
  • Corregir la opción com.docker.network.host_ipv4 cuando IPv6 e ip6tables están habilitados. moby/moby#46446
  • Corregir la limpieza del contenedor (cleanupContainer) del daemon si containerd está detenido. moby/moby#46213
  • Corregir la devolución de códigos de estado HTTP incorrectos para errores de libnetwork. moby/moby#46146
  • Corregir varios problemas con los filtros de la API de images/json y la lista de imágenes. moby/moby#46034
  • Los volúmenes CIFS ahora resuelven FQDN correctamente. moby/moby#46863
  • Mejorar la validación de la opción de configuración del daemon userland-proxy-path. La validación ahora ocurre durante el inicio del daemon, en lugar de producir un error al iniciar un contenedor con mapeo de puertos. moby/moby#47000
  • Establecer la dirección MAC de la interfaz del contenedor cuando el modo de red es un ID de red corto. moby/moby#46406
  • Ordenar los argumentos de compilación no consumidos antes de mostrarlos en la salida de compilación. moby/moby#45917
  • La salida del archivo tar de docker image save ahora cumple con OCI. moby/moby#44598
  • El daemon ya no añade reglas ACCEPT al final de la cadena de iptables INPUT para redes overlay cifradas. Dependiendo de la configuración del cortafuegos, puede ser necesaria una regla para permitir el tráfico entrante de la red overlay cifrada. moby/moby#45280
  • El desempaquetado de capas con atributos extendidos en un sistema de archivos incompatible ahora fallará en lugar de descartar silenciosamente los atributos extendidos. moby/moby#45464
  • Actualizar la opción MTU del daemon a BridgeConfig y mostrar advertencia en Windows. moby/moby#45887
  • Validar la configuración de IPAM al crear una red. Corregir automáticamente las redes creadas antes de esta versión donde --ip-range es más grande que --subnet. moby/moby#45759
  • Los contenedores conectados solo a redes internas ahora no tendrán ninguna ruta predeterminada establecida, haciendo que la llamada al sistema connect falle rápidamente. moby/moby#46603
  • Almacén de imágenes de containerd: Añadir eventos de imagen para push, pull y save. moby/moby#46405
  • Almacén de imágenes de containerd: Añadir soporte para descargar imágenes heredadas de esquema 1. moby/moby#46513
  • Almacén de imágenes de containerd: Añadir soporte para subir todas las etiquetas. moby/moby#46485
  • Almacén de imágenes de containerd: Añadir soporte para token de registro. moby/moby#46475
  • Almacén de imágenes de containerd: Añadir soporte para mostrar la cantidad de contenedores que usan una imagen. moby/moby#46511
  • Almacén de imágenes de containerd: Corregir un error relacionado con las instrucciones de Dockerfile ONBUILD, MAINTAINER y HEALTHCHECK. moby/moby#46313
  • Almacén de imágenes de containerd: Corregir el mensaje de progreso Pulling from. moby/moby#46494
  • Almacén de imágenes de containerd: Añadir soporte para hacer referencia a imágenes a través del ID truncado con el prefijo sha256:. moby/moby#46435
  • Almacén de imágenes de containerd: Corregir que docker images muestre capas intermedias por defecto. moby/moby#46423
  • Almacén de imágenes de containerd: Corregir la comprobación de si la plataforma especificada existe al obtener una imagen. moby/moby#46495
  • Almacén de imágenes de containerd: Corregir errores cuando se utilizaban múltiples instrucciones ADD o COPY con el constructor clásico. moby/moby#46383
  • Almacén de imágenes de containerd: Corregir errores de desbordamiento de pila al importar una imagen. moby/moby#46418
  • Almacén de imágenes de containerd: Mejorar la salida del progreso de docker pull. moby/moby#46412
  • Almacén de imágenes de containerd: Imprimir la etiqueta, resumen y tamaño después de subir una imagen. moby/moby#46384
  • Almacén de imágenes de containerd: Eliminar el pánico de UpdateConfig. moby/moby#46433
  • Almacén de imágenes de containerd: Devolver un error cuando una etiqueta de imagen se parece a un resumen. moby/moby#46492
  • Almacén de imágenes de containerd: docker image ls ahora muestra la fecha y hora correctas de creación de la imagen. moby/moby#46719
  • Almacén de imágenes de containerd: Corregir un problema al manejar la configuración del espacio de nombres de usuario (user namespace). moby/moby#46375
  • Almacén de imágenes de containerd: Añadir soporte para descargar todas las etiquetas (docker pull -a). moby/moby#46618
  • Almacén de imágenes de containerd: Utilizar el nombre de dominio en la referencia de la imagen como el dominio de autenticación de registro predeterminado. moby/moby#46779

Actualizaciones de empaquetado

Eliminado

Depreciado

  • Depreciar las versiones de la API anteriores a la 1.24. Aviso de depreciación
  • Depreciar el campo IsAutomated y el filtro is-automated para docker search. Aviso de depreciación
  • API: Depreciar las propiedades Container y ContainerConfig para /images/{id}/json (docker image inspect). moby/moby#46939

Limitaciones conocidas

Atributos extendidos para archivos tar

En esta versión, el código que maneja archivos tar se modificó para ser más estricto y producir un error cuando no se pueden escribir atributos extendidos (xattr). La implementación de tar para macOS genera atributos extendidos adicionales por defecto al crear archivos tar. Estos prefijos de atributos no son prefijos de espacio de nombres xattr de Linux válidos, lo que provoca un error cuando Docker intenta procesar estos archivos. Por ejemplo, si intentas usar un archivo tar con una instrucción de Dockerfile ADD, podrías ver un mensaje de error similar al siguiente:

failed to solve: lsetxattr /sftp_key.ppk: operation not supported

Los mensajes de error relacionados con la validación de atributos extendidos se mejoraron para incluir más contexto en la versión v25.0.1, pero se mantiene la limitación de que Docker no pueda procesar los archivos. Los archivos tar creados con el comando tar de macOS usando argumentos predeterminados producirán un error cuando el archivo tar se use con Docker.

Como solución temporal, si necesitas usar archivos tar con Docker generados en macOS, puedes hacer una de las siguientes opciones:

  • Usar la bandera --no-xattr para el comando tar de macOS para eliminar todos los atributos extendidos. Si deseas conservar los atributos extendidos, esta no es una opción recomendada.

  • Instalar y utilizar gnu-tar para crear los archivos tar en macOS en lugar de la implementación de tar predeterminada. Para instalar gnu-tar utilizando Homebrew:

    $ brew install gnu-tar
    

    Después de la instalación, añade el binario gnu-tar a tu variable PATH, por ejemplo actualizando tu archivo .zshrc:

    $ echo 'PATH="/opt/homebrew/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.zshrc
    $ source ~/.zshrc