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:
- Características depreciadas y eliminadas, consulta Características del motor depreciadas.
- Cambios en la API del motor, consulta el Historial de versiones de la API del motor.
25.0.5
2024-03-19Para 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#47587Corregir fugas de espacio en disco provocadas por múltiples ejecuciones paralelas de
docker build. moby/moby#47527
25.0.4
2024-03-07Para 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 startfalle 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
xattrscreados 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}/jsonomite el campoCreated(anteriormente era0001-01-01T00:00:00Z) si dicho campo faltaba en la configuración de la imagen. moby/moby#47451 - API: Rellenar un campo
Createdfaltante enGET /images/{id}/jsoncon0001-01-01T00:00:00Zpara 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
NetworkModeno es el mismo que el nombre o id utilizado enNetworkSettings.Networks. moby/moby#47510
Actualizaciones de empaquetado
- Actualizar el entorno de ejecución de Go a 1.21.8. moby/moby#47503
- Actualizar RootlessKit a v2.0.2. moby/moby#47508
- Actualizar Compose a v2.24.7. docker/docker-ce-packaging#998
- Actualizar Buildx a v0.13.0. docker/docker-ce-packaging#997
25.0.3
2024-02-06Para 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 historyfallaba si no se encontraba un manifiesto en el almacén de contenido. moby/moby#47348Asegurar 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#47294Corregir 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#47303Corregir un error por el cual se ignoraba el valor de la opción de daemon
ipv6. moby/moby#47310Corregir 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
journaldque impedía que los logs de los contenedores se siguieran correctamente en systemd versión 255. moby/moby#47243seccomp: 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
- Se eliminó el soporte para Ubuntu Lunar (23.04). docker/ce-packaging#986
25.0.2
2024-01-31Para 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.
| CVE | Componente | Versión de corrección | Severidad |
|---|---|---|---|
| CVE-2024-21626 | runc | 1.1.12 | Alta, CVSS 8.6 |
| CVE-2024-23651 | BuildKit | 1.12.5 | Alta, CVSS 8.7 |
| CVE-2024-23652 | BuildKit | 1.12.5 | Alta, CVSS 8.7 |
| CVE-2024-23653 | BuildKit | 1.12.5 | Alta, CVSS 7.7 |
| CVE-2024-23650 | BuildKit | 1.12.5 | Media, CVSS 5.5 |
| CVE-2024-24557 | Docker Engine | 25.0.2 | Media, 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
- Actualizar containerd a v1.6.28.
- Actualizar containerd a v1.7.13 (solo binarios estáticos). moby/moby#47280
- Actualizar runc a v1.1.12. moby/moby#47269
- Actualizar Compose a v2.24.5. docker/docker-ce-packaging#985
- Actualizar BuildKit to v0.12.5. moby/moby#47273
25.0.1
2024-01-23Para 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-ipno 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
addroip. 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_intervalno se pasara a la configuración del contenedor. moby/moby#47163
Actualizaciones de empaquetado
- Actualizar Compose a
2.24.2. docker/docker-ce-packaging#981
25.0.0
2024-01-19Para obtener una lista completa de las solicitudes de extracción y los cambios en esta versión, consulta los hitos correspondientes en GitHub:
NoteEn 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-recursivepara la bandera--mount.$ docker run --mount type=bind,src=SRC,dst=DST,readonly,bind-recursive=writable IMAGEEsta opción no es compatible con la bandera
-vo--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 eninfinity. 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#45534El 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 buildcuando se utiliza BuildKit con el controladordocker. 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-inooverridedel 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-formatadockerdpara controlar el formato de registro de logs: texto (predeterminado) o JSON. moby/moby#45737Añ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
/infopara usar singleflight. moby/moby#45847 - Añadir un mensaje de error cuando se especifica un nombre de archivo Dockerfile con
-fy también se utilizastdin. docker/cli#4346 - Añadir soporte para los campos
mac-addressylink-local-ipen el formato largo de--network. docker/cli#4419 - Añadir soporte para especificar múltiples banderas
--networkcondocker container createydocker 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
Downloadingal descargar una imagen. moby/moby#46515 - Corregir
NetworkConnectyContainerCreatecon 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_ipv4cuando 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 saveahora cumple con OCI. moby/moby#44598 - El daemon ya no añade reglas
ACCEPTal final de la cadena de iptablesINPUTpara 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-rangees 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
connectfalle rápidamente. moby/moby#46603 - Almacén de imágenes de containerd: Añadir eventos de imagen para
push,pullysave. 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,MAINTAINERyHEALTHCHECK. 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 imagesmuestre 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
ADDoCOPYcon 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 lsahora 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
- Actualizar API a la v1.44. moby/moby#45468
- Actualizar Compose a
2.24.1. docker/docker-ce-packaging#980 - Actualizar containerd a v1.7.12 (solo binarios estáticos). moby/moby#47070
- Actualizar el entorno de ejecución de Go a 1.21.6. moby/moby#47053
- Actualizar runc a v1.1.11. moby/moby#47007
- Actualizar BuildKit a v0.12.4. moby/moby#46882
- Actualizar Buildx a v0.12.1. docker/docker-ce-packaging#979
Eliminado
- API: Eliminar el campo VirtualSize para los endpoints
GET /images/jsonyGET /images/{id}/json. moby/moby#45469 - Eliminar el controlador de almacenamiento depreciado
devicemapper. moby/moby#43637 - Eliminar las opciones de orquestador depreciadas. docker/cli#4366
- Eliminar el soporte para el sistema de inicio Debian Upstart. moby/moby#45548, moby/moby#45551
- Eliminar la opción del daemon
--oom-score-adjust. moby/moby#45484 - Eliminar la advertencia para el archivo depreciado
~/.dockercfg. docker/cli#4281 - Eliminar el controlador de registro de logs
logentries. moby/moby#46925
Depreciado
- Depreciar las versiones de la API anteriores a la 1.24. Aviso de depreciación
- Depreciar el campo
IsAutomatedy el filtrois-automatedparadocker search. Aviso de depreciación - API: Depreciar las propiedades
ContaineryContainerConfigpara/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 supportedLos 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-xattrpara el comandotarde macOS para eliminar todos los atributos extendidos. Si deseas conservar los atributos extendidos, esta no es una opción recomendada.Instalar y utilizar
gnu-tarpara crear los archivos tar en macOS en lugar de la implementación detarpredeterminada. Para instalargnu-tarutilizando Homebrew:$ brew install gnu-tarDespués de la instalación, añade el binario
gnu-tara tu variablePATH, por ejemplo actualizando tu archivo.zshrc:$ echo 'PATH="/opt/homebrew/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.zshrc $ source ~/.zshrc