Notas de la versión de Docker Engine versión 27
Esta página describe los cambios más recientes, adiciones, problemas conocidos y correcciones para la versión 27 de Docker Engine.
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.
27.5
Notas de la versión de Docker Engine versión 27.5.
27.5.1
2025-01-22Para 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:
Correcciones de errores y mejoras
- Corregir un problema que podía impedir de forma persistente el inicio del daemon después de un fallo al inicializar el puente (bridge) predeterminado. moby/moby#49307
- Añadir una variable de entorno
DOCKER_IGNORE_BR_NETFILTER_ERROR. Establecerla en1permite la ejecución en hosts que no pueden cargarbr_netfilter. Algunas cosas no funcionarán, como la desactivación de la comunicación entre contenedores en una red bridge. Con el proxy userland desactivado, no será posible acceder a los puertos publicados de un contenedor desde otro contenedor en la misma red. moby/moby#49306
Actualizaciones de empaquetado
- Actualizar el entorno de ejecución de Go a 1.22.11 (corrige CVE-2024-45341, CVE-2024-45336). moby/moby#49312, docker/docker-ce-packaging#1147, docker/cli#5762
- Actualizar RootlessKit a v2.3.2 para soportar
passt>= 2024_10_30.ee7d0b6. moby/moby#49304 - Actualizar Buildx a v0.20.0. docker/docker-ce-packaging#1149
27.5.0
2025-01-13Para 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 el envío de un contexto de compilación a través de un archivo tar al endpoint
/build. moby/moby#49194 - Las políticas de recolección de basura del constructor sin un valor de
keepStorageahora heredan el límitedefaultKeepStoragecomo se esperaba. moby/moby#49137 - Preservar las etiquetas de red durante el inicio del daemon. moby/moby#49200
- Corregir un error de posible condición de carrera al eliminar un contenedor. moby/moby#49239
SDK de Go
pkg/sysinfo: depreciarNumCPU. Esta utilidad tiene el mismo comportamiento queruntime.NumCPU. moby/moby#49247pkg/fileutils: depreciarGetTotalUsedFds: esta función solo se usa internamente y se eliminará en la próxima versión. moby/moby#49209pkg/ioutils: depreciarBytesPipe,NewBytesPipe,ErrClosed,WriteCounter,NewWriteCounter,NewReaderErrWrapper,NopFlusher,NopWriter,NopWriteCloser. Solo se usaban internamente y se eliminarán en la próxima versión. moby/moby#49246, moby/moby#49255pkg/reexec: Este paquete está depreciado y se ha movido a un módulo independiente. Utilizagithub.com/moby/sys/reexecen su lugar. moby/moby#49135
Actualizaciones de empaquetado
- Actualizar containerd a v1.7.25. moby/moby#49253
- Actualizar
runca v1.2.4. moby/moby#49243 - Actualizar BuildKit a v0.18.2. moby/moby#48949
- Actualizar Compose a v2.32.2. docker/docker-ce-packaging#1140
27.4
Notas de la versión de Docker Engine versión 27.4.
27.4.1
2024-12-18Para 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
- Corregir asignaciones excesivas de memoria cuando OTel no está configurado. moby/moby#49079
- El comando
docker infoy el correspondiente endpoint de la APIGET /infoya no incluyen advertencias cuandobridge-nf-call-iptablesobridge-nf-call-ip6tablesestán desactivados al iniciar el daemon. Ahora se intenta cargar el módulo del kernelbr_netfiltercuando es necesario, lo que hacía que esas advertencias fueran inexactas. moby/moby#49090 - Intentar cargar módulos del kernel, incluyendo
ip6_tablesybr_netfiltercuando sea necesario, utilizando un método que probablemente tenga éxito dentro de un contenedor Docker-in-Docker. moby/moby#49043 - Corregir un error que podía dar lugar a que una cadena de iptables
DOCKER FILTERno se limpiara en caso de fallo. moby/moby#49110
Actualizaciones de empaquetado
- Actualizar Compose a v2.32.1. docker/docker-ce-packaging#1130
- Actualizar Buildx a v0.19.3. docker/docker-ce-packaging#1132
- Actualizar runc (solo binarios estáticos) a v1.2.3. moby/moby#49085
27.4.0
2024-12-09Para obtener una lista completa de las solicitudes de extracción y los cambios en esta versión, consulta los hitos correspondientes en GitHub:
API
GET /images/jsoncon la opciónmanifestsactivada ahora preserva el orden original en el que aparecían los manifiestos en el índice de manifiestos. moby/moby#48712
Correcciones de errores y mejoras
- Al leer logs con los controladores de logs
jsonfileolocal, cualquier error al intentar leer o analizar los archivos de logs subyacentes hará que se salte el resto del archivo y se pase al siguiente archivo de logs (si existe uno), en lugar de devolver un error al cliente y cerrar el flujo. Los errores se pueden ver en los logs del Daemon de Docker y se exportan a trazas cuando el rastreo está configurado. moby/moby#48842 - Al leer archivos de logs, los archivos de logs comprimidos ahora solo se descomprimen cuando es necesario en lugar de descomprimir todos los archivos antes de iniciar el flujo de logs. moby/moby#48842
- Corregir un problema por el cual los puertos publicados de un contenedor en una red bridge no eran accesibles desde otro contenedor en la misma red con
userland-proxydesactivado, si el módulobr_netfilterdel kernel no estaba cargado y activado. El daemon intentará ahora cargar el módulo y activarbridge-nf-call-iptablesobridge-nf-call-ip6tablesal crear una red con el proxy userland desactivado. moby/moby#48685 - Corregir la carga de los módulos del kernel
bridgeybr_netfilter. moby/moby#48966 - Almacén de imágenes de containerd: Corregir que el daemon de Docker no pudiera iniciarse por completo con un error de "context deadline exceeded" al utilizar el snapshotter de containerd y con muchas compilaciones/imágenes. moby/moby#48954
- Almacén de imágenes de containerd: Corregir que las imágenes parcialmente descargadas no fueran eliminadas por la recolección de basura. moby#48910, moby/moby#48957
- Almacén de imágenes de containerd: Corregir que
docker image inspectmostrara referencias duplicadas enRepoDigests. moby/moby#48785 - Almacén de imágenes de containerd: Corregir que no fuera posible conectarse a algunos registros no seguros en casos donde la solicitud HTTPS fallaba debido a un error no relacionado con TLS. moby/moby#48758
- Almacén de imágenes de containerd: Eliminar un registro de advertencia confuso al etiquetar una imagen que no es huérfana (dangling). moby/moby#49010
- Almacén de imágenes de containerd: No subrayar nombres en
docker image ls --tree. docker/cli#5519 - Almacén de imágenes de containerd: Cambiar el nombre de la columna
USEDendocker image ls --treeaIN USE. docker/cli#5518 dockerd-rootless-setuptool.sh install --forceahora ignora los errores de RootlessKit. moby/moby#48695- Desactivar la Detección de Direcciones Duplicadas (DAD) de IPv6 para las direcciones asignadas a los puentes que pertenecen a redes bridge. moby/moby#48684
- Eliminar el tiempo de espera de inicio de BuildKit. moby/moby#48963
- Ignorar el error "dataset does not exist" al eliminar un conjunto de datos en ZFS. moby/moby#48968
- Cliente: Evitar que las conexiones inactivas filtren FDs (descriptores de archivos). moby/moby#48764
- Corregir que los volúmenes anónimos creados a través de la opción
--mountno se marcaran como anónimos. moby/moby#48755 - Después de un reinicio del daemon con live-restore, asegurarse de que un salto de iptables a la cadena
DOCKER-USERse coloque antes de otras reglas. moby/moby#48714 - Corregir una posible fuga de memoria causada por los contadores de OTel. moby/moby#48693
- Crear una base de datos de historial de compilación distinta para cada almacén de imágenes. moby/moby#48688
- Corregir un problema que causaba un uso excesivo de memoria cuando se realizaba la resolución de DNS en un bucle cerrado. moby/moby#48840
- Corregir un error que impedía cancelar las descargas de imágenes durante
docker run. docker/cli#5654 - Los comandos
docker loginydocker logoutya no actualizan el archivo de configuración si las credenciales no cambiaron. docker/cli#5569 - Optimizar
docker statspara reducir los problemas de parpadeo. docker/cli#5588, docker/cli#5635 - Corregir que rutas de plugins inaccesibles impidan que se detecten los plugins. docker/cli#5652
- Añadir soporte para
events --filteren completados de la terminal generados por cobra. docker/cli#5614 - Corregir completado de bash para
events --filter daemon=. docker/cli#5563 - Mejorar el completado de contenedores en la terminal para
docker rm. docker/cli#5540 - Añadir completado de la terminal para las banderas
--platform. docker/cli#5540 - rootless: Hacer que
/etc/cdiy/var/run/cdisean accesibles por la integración de la Interfaz de Dispositivo de Contenedor (CDI). moby/moby#49027
Eliminado
- Depreciar
Daemon.Exists()yDaemon.IsPaused(). Estas funciones ya no se utilizan y se eliminarán en la próxima versión. moby/moby#48719 - Depreciar
container.ErrNameReservedycontainer.ErrNameNotReserved. moby/moby#48697 - Depreciar
pkg/platform- este paquete solo se utiliza internamente y se eliminará en la próxima versión. moby/moby#48863 - Depreciar
RepositoryInfo.Class. Este campo ya no se utiliza y se eliminará en la próxima versión. moby/moby#49013 - SDK de Go: Corregir depreciación de
cli/command.ConfigureAuth(), que estaba depreciada desde la v27.2.1. docker/cli#5552 - SDK de Go: Depreciar el tipo
cli.Errorsen favor deerrors.Joinde Go. docker/cli#5548
Actualizaciones de empaquetado
- Actualizar el entorno de ejecución de Go a 1.22.10. moby/moby#49026, docker/cli#5669, docker/docker-ce-packaging#1120.
- Actualizar Compose a v2.31.0. docker/docker-ce-packaging#1100
- Actualizar BuildKit a v0.17.3. moby/moby#49024
- Actualizar Buildx a v0.19.1. docker/docker-ce-packaging#1115
- Actualizar containerd a v1.7.24. moby/moby#48934
- Actualizar containerd (solo binarios estáticos) a v1.7.24. moby/moby#48919
- Actualizar runc a v1.2.2. moby/moby#48919
27.3
Notas de la versión de Docker Engine versión 27.3.
27.3.1
2024-09-20Para 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:
Correcciones de errores y mejoras
- CLI: Corregir un problema por el cual las métricas de ejecución de comandos no se exportaban correctamente. docker/cli#5457
Actualizaciones de empaquetado
- Actualizar Compose a v2.29.7.
27.3.0
2024-09-19Para 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 que
docker image prune -aeliminara las etiquetas de las imágenes utilizadas por contenedores iniciados a partir de imágenes referenciadas por una referencia con resumen (digested reference). moby/moby#48488 - Añadir una bandera
--featurea las opciones del daemon. moby/moby#48487 - Actualizar el manejo de la bandera
--gpus=0para que sea consistente con la de NVIDIA Container Runtime. moby/moby#48483 - Soportar el uso de la interfaz
loopback0de red en modo espejo de WSL2 para paquetes del host Windows. moby/moby#48514 - Corregir un problema que impedía la comunicación entre contenedores en una red bridge IPv4 al ejecutarse con
--iptables=false,--ip6tables=true(por defecto), un cortafuegos con una regla DROP para paquetes reenviados en hosts donde el módulobr_netfilterdel kernel no estaba cargado normalmente. moby/moby#48511 - CLI: Corregir un problema por el cual el comando
docker volume updatecausaba que la CLI entrara en pánico si no se pasaba ningún argumento/volumen. docker/cli#5426 - CLI: Reportar adecuadamente las métricas cuando se ejecuta en el entorno WSL en Windows. docker/cli#5432
Actualizaciones de empaquetado
- Actualizar containerd (solo binarios estáticos) a v1.7.22. moby/moby#48468
- Actualizar BuildKit a v0.16.0.
- Actualizar Compose a v2.29.6.
- Actualizar Buildx a v0.17.1.
27.2
Notas de la versión de Docker Engine versión 27.2.
27.2.1
2024-09-09Correcciones de errores y mejoras
- Almacén de imágenes de containerd: Corregir que las imágenes que no son de contenedor estuvieran ocultas en la salida de
docker image ls. moby/moby#48402 - Almacén de imágenes de containerd: Mejorar el mensaje de error de
docker pullcuando la plataforma de la imagen no coincide. moby/moby#48415 - CLI: Corregir un problema que causaba que
docker loginno eliminara los nombres de repositorio de las direcciones de registro pasadas, lo que provocaba que las credenciales se almacenaran bajo la clave incorrecta. docker/cli#5385 - CLI: Corregir un problema que a veces provocaba que el flujo de inicio de sesión mediante código de dispositivo fallara si el proceso de la CLI se suspendía y luego se reanudaba mientras se esperaba a que el usuario se autenticara. docker/cli#5376
- CLI:
docker loginahora devuelve un error en lugar de colgarse si se le llama de forma no interactiva con--passwordo--password-stdinpero sin--user. docker/cli#5402
Actualizaciones de empaquetado
- Actualizar runc a v1.1.14, que contiene una corrección para CVE-2024-45310. moby/moby#48426
- Actualizar el entorno de ejecución de Go a 1.22.7. moby/moby#48433, docker/cli#5411, docker/docker-ce-packaging#1068
27.2.0
2024-08-27Para obtener una lista completa de las solicitudes de extracción y los cambios en esta versión, consulta los hitos correspondientes en GitHub:
- docker/cli, hito 27.2.0
- moby/moby, hito 27.2.0
- Características depreciadas y eliminadas, consulta las Características depreciadas.
- Cambios en la API del motor, consulta el Historial de versiones de la API.
Nuevas características
Las nuevas características en esta versión son:
Inicio de sesión con código de dispositivo
Esta versión añade soporte para utilizar el inicio de sesión con código de dispositivo (device code login) al autenticarse en Docker Hub.
Puedes seguir utilizando el método antiguo de inicio de sesión con un nombre de usuario y contraseña o token de acceso, pero el inicio de sesión con código de dispositivo es más seguro y no requiere que introduzcas tu contraseña en la CLI.


Para utilizar el método antiguo, utiliza docker login -u <username>.
Soporte multiplataforma para docker image ls
Experimental
Esto es experimental y puede cambiar en cualquier momento sin compatibilidad hacia atrás.Con el almacén de imágenes de containerd habilitado, el comando docker image ls (o el
atajo docker images) ahora admite una bandera --tree que muestra
si una imagen es multiplataforma.
API
La respuesta
GET /images/jsonahora incluye el campoManifests, que contiene información sobre los submanifiestos incluidos en el índice de la imagen. Esto incluye elementos como manifiestos específicos de plataforma y atestaciones de compilación.El nuevo campo solo se completará si la solicitud también establece el parámetro de consulta
manifestsentrue.Experimental
Esto es experimental y puede cambiar en cualquier momento sin compatibilidad hacia atrás.
Correcciones de errores y mejoras
- CLI: Corregir un problema con contextos remotos a través de SSH donde la CLI asignaba un pseudo-TTY al conectarse al host remoto, lo que causaba problemas en situaciones raras. docker/cli#5351
- Corregir un problema que impedía la creación de redes con un
--ip-rangeque terminaba en un límite de 64 bits. moby/moby#48326 - CLI: Las direcciones IPv6 que muestra
docker psen las asociaciones de puertos (port bindings) ahora están entre corchetes. docker/cli#5365 - Almacén de imágenes de containerd: Corregir la salida temprana con error de
docker loaden casos donde fallara el desempaquetado de la imagen. moby/moby#48376 - Almacén de imágenes de containerd: Corregir que la imagen anterior no persistiera como huérfana (dangling) después de
docker pull. moby/moby#48380
Actualizaciones de empaquetado
- Actualizar BuildKit a v0.15.2. moby/moby#48341
- Actualizar Compose a v2.29.2. docker/docker-ce-packaging#1050
- Actualizar containerd a v1.7.21. moby/moby#48383, docker/containerd-packaging#389
Problemas conocidos
- Existe un problema conocido al autenticarse contra un registro en la CLI de Docker (
docker login [dirección del registro]) donde, si la dirección del registro proporcionada incluye un nombre de repositorio/imagen (comodocker login index.docker.io/docker/welcome-to-docker), la parte del repositorio (docker/welcome-to-docker) no se normaliza y hace que las credenciales se almacenen incorrectamente, lo que provoca que las descargas posteriores del registro (docker pull index.docker.io/docker/welcome-to-docker) no se autentiquen. Para evitar esto, no incluyas ningún sufijo extraño en la dirección del registro al ejecutardocker login.NoteUtilizar
docker logincon una dirección que incluye segmentos de ruta URL no es un caso de uso documentado y se considera no soportado. El uso recomendado es especificar solo un nombre de host de registro, y opcionalmente un puerto, como dirección paradocker login.
27.1
Notas de la versión de Docker Engine versión 27.1.
27.1.2
2024-08-13Para obtener una lista completa de las solicitudes de extracción y los cambios en esta versión, consulta los hitos correspondientes en GitHub:
- docker/cli, hito 27.1.2
- moby/moby, hito 27.1.2
- Características depreciadas y eliminadas, consulta las Características depreciadas.
- Cambios en la API del motor, consulta el Historial de versiones de la API.
Correcciones de errores y mejoras
- Corregir una regresión que podía resultar en un error
ResourceExhausted desc = grpc: received message larger than maxal construir a partir de un Dockerfile grande. moby/moby#48245 - CLI: Corregir que
docker attachimprima un mensaje de error falso decontext cancelled. docker/cli#5296 - CLI: Corregir que
docker attachsalga conSIGINTen lugar de reenviar la señal al contenedor y esperar a que salga. docker/cli#5302 - CLI: Corregir que las opciones
--device-read-bpsy--device-write-bpsno tuvieran efecto. docker/cli#5339 - CLI: Corregir un pánico que ocurría en algunos casos al ejecutar un plugin. docker/cli#5337
Actualizaciones de empaquetado
- Actualizar BuildKit a v0.15.1. moby/moby#48246
- Actualizar Buildx a v0.16.2. docker/docker-ce-packaging#1043
- Actualizar el entorno de ejecución de Go a 1.21.13. moby/moby#48301, docker/cli#5325, docker/docker-ce-packaging#1046
- Eliminar el binario no utilizado
docker-proxy.exede los paquetes de Windows. docker/docker-ce-packaging#1045
27.1.1
2024-07-23Seguridad
Esta versión contiene una corrección para CVE-2024-41110 / GHSA-v23v-6jw2-98fq que afectaba a las instalaciones que utilizaban plugins de autorización (AuthZ) para el control de acceso. No se incluyen otros cambios en esta versión, y esta versión es por lo demás idéntica para los usuarios que no utilizan plugins AuthZ.
Actualizaciones de empaquetado
- Actualizar Compose a v2.29.1. moby/docker-ce-packaging#1041
27.1.0
2024-07-22Para obtener una lista completa de las solicitudes de extracción y los cambios en esta versión, consulta los hitos correspondientes en GitHub:
- docker/cli, hito 27.1.0
- moby/moby, hito 27.1.0
- Características depreciadas y eliminadas, consulta las Características depreciadas.
- Cambios en la API del motor, consulta el Historial de versiones de la API.
Correcciones de errores y mejoras
- rootless: añadir
Requires=dbus.socketpara evitar errores al iniciar el daemon en un host con cgroup v2 con systemd. moby/moby#48141 - Integración de containerd: el evento
image tagahora se emite correctamente cuando se construyen imágenes con BuildKit. moby/moby#48182 - CLI: habilitar el completado en la terminal para
docker image rm,docker image historyydocker image inspect. moby/moby#5261 - CLI: añadir y mejorar los completados de la terminal para varias banderas. moby/moby#5261
- CLI: añadir OOMScoreAdj a
docker service createydocker stack. docker/cli#5274 - CLI: añadir soporte para la variable de entorno
DOCKER_CUSTOM_HEADERS(experimental). docker/cli#5271 - CLI: integración de containerd: Corregir que
docker pushuse por defecto la bandera--platformal valor de la variable de entornoDOCKER_DEFAULT_PLATFORMen versiones de API no soportadas. docker/cli#5248 - CLI: corrección: cancelación del contexto en el prompt de
login. docker/cli#5260 - CLI: corrección: esperar a que el contenedor salga antes de cerrar el flujo cuando se envía una solicitud de terminación a la CLI mientras se está adjunto a un contenedor. docker/cli#5250
Depreciado
- El paquete
pkg/rootless/specconvestá depreciado y se eliminará en la próxima versión. moby/moby#48185 - El paquete
pkg/containerfsestá depreciado y se eliminará en la próxima versión. moby/moby#48185 - El paquete
pkg/directoryestá depreciado y se eliminará en la próxima versión. moby/moby#48185 api/types/system: eliminar el depreciadoInfo.ExecutionDriver. moby/moby#48184
Actualizaciones de empaquetado
- Actualizar Buildx a v0.16.1. moby/docker-ce-packaging#1039
- Actualizar Compose a v2.29.0. moby/docker-ce-packaging#1038
- Actualizar Containerd (solo binarios estáticos) a v1.7.20. moby/moby#48191
- Actualizar BuildKit a v0.15.0. moby/moby#48175
- Actualizar el entorno de ejecución de Go a 1.21.12, que contiene correcciones de seguridad para CVE-2024-24791. moby/moby#48120
27.0
Notas de la versión de Docker Engine 27.0.
27.0.3
2024-07-01Para 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:
- docker/cli, hito 27.0.3
- moby/moby, hito 27.0.3
- Características depreciadas y eliminadas, consulta las Características depreciadas.
- Cambios en la API del motor, consulta el Historial de versiones de la API.
Correcciones de errores y mejoras
- Corregir una regresión que informaba incorrectamente como error un mapeo de puertos desde una dirección IPv6 del host a un contenedor que solo es IPv4. moby/moby#48090
- Corregir una regresión que causaba asignaciones de subredes duplicadas al crear redes. moby/moby#48089
- Corregir una regresión que provocaba errores
fail to register layer: failed to Lchownal intentar descargar una imagen con rootless habilitado en un sistema que soporta overlay nativo con espacios de nombres de usuario (user-namespaces). moby/moby#48086
27.0.2
2024-06-27Para obtener una lista completa de las solicitudes de extracción y los cambios en esta versión, consulta los hitos correspondientes en GitHub:
- docker/cli, hito 27.0.2
- moby/moby, hito 27.0.2
- Características depreciadas y eliminadas, consulta las Características depreciadas.
- Cambios en la API del motor, consulta el Historial de versiones de la API.
Correcciones de errores y mejoras
- Corregir una regresión que provocaba que se ignoraran los números de puerto al analizar la URL de un registro de Docker. docker/cli#5197, docker/cli#5198
Eliminado
- api/types: depreciar el campo
ContainerJSONBase.Nodey el tipoContainerNode. Estas definiciones eran utilizadas por la API de Swarm independiente ("clásica"), pero nunca se implementaron en el propio Docker Engine. moby/moby#48055
27.0.1
2024-06-24Para obtener una lista completa de las solicitudes de extracción y los cambios en esta versión, consulta los hitos correspondientes en GitHub:
- docker/cli, hito 27.0.0
- moby/moby, hito 27.0.0
- Características depreciadas y eliminadas, consulta las Características depreciadas.
- Cambios en la API del motor, consulta el Historial de versiones de la API.
Nuevas características
- Almacén de imágenes de containerd: Añadir la bandera
--platformadocker image pushy mejorar el comportamiento predeterminado cuando no todas las plataformas de la imagen multiplataforma están disponibles localmente. docker/cli#4984, moby/moby#47679 - Añadir soporte en
docker stack deployparadriver_optsen las redes de un servicio. docker/cli#5125 - Considerar rutas adicionales
/usr/local/libexecy/usr/libexecal buscar los binarios del proxy userland mediante un nombre con prefijodocker-. moby/moby#47804
Correcciones de errores y mejoras
- Las instancias
*client.Clientson ahora siempre seguras para su uso concurrente por múltiples goroutines. Anteriormente, esto podía provocar carreras de datos cuando se utilizaba la opciónWithAPIVersionNegotiation(). moby/moby#47961 - Corregir un error que causaba que la CLI de Docker filtrara sockets Unix en
$TMPDIRen algunos casos. docker/cli#5146 - No ignorar un perfil seccomp personalizado cuando se utiliza junto con
--privileged. moby/moby#47500 - rootless: overlay2: admitir diff nativo de overlay al utilizar el modo sin privilegios con una versión del kernel de Linux 5.11 o posterior. moby/moby#47605
- Corregir el valor predeterminado de
StartIntervalde healthcheck para reflejar el valor documentado de 5s. moby/moby#47799 - Corregir que
docker saveydocker loadno terminen en el lado del daemon cuando la operación ha sido cancelada por el usuario, por ejemplo con Ctrl+C. moby/moby#47629 - La propiedad
StartedAtde los contenedores se registra ahora antes del inicio del contenedor, garantizando queStartedAtsea siempre anterior aFinishedAt. moby/moby#47003 - El resolvedor DNS interno utilizado por los contenedores de Windows en Windows ahora reenvía las solicitudes a los servidores DNS externos de forma predeterminada. Esto permite a
nslookupresolver nombres de host externos. Este comportamiento se puede desactivar a través dedaemon.json, utilizando"features": { "windows-dns-proxy": false }. La opción de configuración se eliminará en una versión futura. moby/moby#47826 - Imprimir una advertencia cuando la CLI no tiene permisos para leer el archivo de configuración. docker/cli#5077
- Corregir una fuga de goroutines y de descriptores de archivos al adjuntarse a un contenedor. moby/moby#45052
- Limpiar el estado de red de todos los contenedores detenidos o muertos durante el inicio del daemon. moby/moby#47984
- Escribir las opciones de volumen JSON atómicamente para evitar errores de "JSON no válido" después de un fallo del sistema. moby/moby#48034
- Permitir múltiples redes macvlan con el mismo padre. moby/moby#47318
- Permitir el uso de BuildKit en daemons de Windows que lo anuncien. docker/cli#5178
Redes
- Permitir establecer sysctls por interfaz durante la creación del contenedor y la conexión a la red. moby/moby#47686
- En una versión futura, esta será la única manera de establecer opciones sysctl por interfaz.
Por ejemplo, en la línea de comandos en un comando
docker run,--network mynet --sysctl net.ipv4.conf.eth0.log_martians=1será rechazado. En su lugar, debes usar--network name=mynet,driver-opt=com.docker.network.endpoint.sysctls=net.ipv4.conf.IFNAME.log_martians=1.
- En una versión futura, esta será la única manera de establecer opciones sysctl por interfaz.
Por ejemplo, en la línea de comandos en un comando
IPv6
ip6tablesya no es experimental. Puedes eliminar la opción de configuraciónexperimentaly continuar usando IPv6, si no es requerido por ninguna otra característica.ip6tablesahora está habilitado por defecto para las redes bridge de Linux. moby/moby#47747- Esto hace que los comportamientos de IPv4 e IPv6 sean consistentes entre sí, y reduce el riesgo de que los contenedores habilitados para IPv6 queden expuestos inadvertidamente a la red.
- No hay impacto si estás ejecutando Docker Engine con
ip6tableshabilitado (nuevo valor predeterminado). - Si estás utilizando una red bridge habilitada para IPv6 sin
ip6tables, esto es probablemente un cambio de ruptura (breaking change). Solo los puertos del contenedor publicados (-po--publish) son accesibles desde fuera de la red bridge de Docker, y las conexiones salientes se enmascaran como el host. - Para restaurar el comportamiento de las versiones anteriores, es decir, sin
ip6tablesen absoluto, establece"ip6tables": falseendaemon.json, o utiliza la opción de CLI--ip6tables=false. Alternativamente, dejaip6tableshabilitado, publica los puertos y habilita el enrutamiento directo. - Con
ip6tableshabilitado, siip6tablesno es funcional en tu host, Docker Engine se iniciará pero no será posible crear una red habilitada para IPv6.
Mejoras en la configuración de la red IPv6
- Se añade automáticamente un prefijo base de Dirección Local Única (ULA) a
default-address-poolssi este parámetro no se configuró manualmente, o si no contiene prefijos IPv6. moby/moby#47853- Antes de esta versión, para crear una red habilitada para IPv6 era necesario utilizar la opción
--subnetpara especificar una subred IPv6, o añadir rangos IPv6 adefault-address-poolsendaemon.json. - A partir de esta versión, cuando se crea una red bridge con
--ipv6y no se define ninguna subred IPv6 mediante esas opciones, se utiliza un prefijo base de Dirección Local Única (ULA) de IPv6. - El prefijo ULA se deriva del ID de host del motor de modo que sea único entre hosts y a lo largo del tiempo.
- Antes de esta versión, para crear una red habilitada para IPv6 era necesario utilizar la opción
- Ahora se pueden añadir pools de direcciones IPv6 de cualquier tamaño a
default-address-pools. moby/moby#47768 - Ahora se puede habilitar IPv6 por defecto en todas las redes bridge personalizadas utilizando
"default-network-opts": { "bridge": {"com.docker.network.enable_ipv6": "true"}}endaemon.json, odockerd --default-network-opt=bridge=com.docker.network.enable_ipv6=trueen la línea de comandos. moby/moby#47867 - Enrutamiento directo para redes IPv6, con
ip6tableshabilitado. moby/moby#47871- Se añadió la opción del controlador bridge
com.docker.network.bridge.gateway_mode_ipv6=<nat|routed>. - El comportamiento predeterminado,
nat, no cambia con respecto a las versiones anteriores que se ejecutaban conip6tableshabilitado. Se configuran reglas de NAT y enmascaramiento para cada puerto de contenedor publicado. - Cuando se establece en
routed, no se configuran reglas de NAT o enmascaramiento para los puertos publicados. Esto permite el acceso directo de IPv6 al contenedor, si la red del host puede enrutar los paquetes para la dirección del contenedor hacia el host. Los puertos publicados se abrirán en el cortafuegos del contenedor. - Cuando una asociación de puertos solo se aplica al modo
routed, solo se permiten las direcciones0.0.0.0o::y no se debe indicar un puerto de host. - Ten en cuenta que los puertos de contenedor publicados, en modo
natorouted, son accesibles desde cualquier dirección remota si el enrutamiento está configurado en la red, a menos que el cortafuegos del host de Docker tenga restricciones adicionales. Por ejemplo:docker network create --ipv6 -o com.docker.network.bridge.gateway_mode_ipv6=routed mynet. - La opción
com.docker.network.bridge.gateway_mode_ipv4=<nat|routed>también está disponible, con el mismo comportamiento pero para IPv4.
- Se añadió la opción del controlador bridge
- Si firewalld se está ejecutando en el host, Docker crea la política
docker-forwardingpara permitir el reenvío desde cualquier zona a la zonadocker. Esto hace posible configurar una red bridge con una dirección IPv6 enrutable, y sin NAT o enmascaramiento. moby/moby#47745 - Cuando se publica un puerto sin especificar un puerto de host, o se proporciona un rango de puertos de host, se asignará el mismo puerto para IPv4 e IPv6. moby/moby#47871
- Por ejemplo,
-p 80dará lugar a que se asigne el mismo puerto efímero para0.0.0.0y::, y-p 8080-8083:80seleccionará el mismo puerto del rango para ambas familias de direcciones. - Del mismo modo, a los puertos publicados en direcciones específicas se les asignará el mismo puerto. Por ejemplo,
-p 127.0.0.1::80 -p '[::1]::80'. - Si no hay ningún puerto disponible en todas las direcciones requeridas, la creación del contenedor fallará.
- Por ejemplo,
- La variable de entorno
DOCKER_ALLOW_IPV6_ON_IPV4_INTERFACE, introducida en la versión 26.1.1, ya no tiene ningún efecto. moby/moby#47963- Si IPv6 no se podía deshabilitar en una interfaz debido a un
/proc/sys/netde solo lectura, la variable de entorno permitía que el contenedor se iniciara de todos modos. - En esta versión, si IPv4 no se puede deshabilitar para una interfaz, IPv6 se puede habilitar explícitamente para la red simplemente usando
--ipv6al crearla. Otras soluciones son configurar el SO para deshabilitar IPv6 por defecto en las nuevas interfaces, montar/proc/sys/netcomo lectura-escritura, o usar un kernel sin soporte para IPv6.
- Si IPv6 no se podía deshabilitar en una interfaz debido a un
- Para las redes bridge habilitadas para IPv6, no intentar reemplazar la dirección de enlace local asignada por el kernel del puente con
fe80::1. moby/moby#47787
Eliminado
- Depreciar los plugins experimentales GraphDriver. moby/moby#48050, docker/cli#5172
- pkg/archive: depreciar
NewTempArchiveyTempArchive. Estos tipos solo se utilizaban en pruebas y se eliminarán en la próxima versión. moby/moby#48002 - pkg/archive: depreciar
CanonicalTarNameForPath. moby/moby#48001 - Depreciar pkg/dmesg. Este paquete ya no se utilizaba y se eliminará en la próxima versión. moby/moby#47999
- Depreciar
pkg/stringid.ValidateIDypkg/stringid.IsShortID. moby/moby#47995 - runconfig: depreciar
SetDefaultNetModeIfBlanky moverContainerConfigWrapperaapi/types/container. moby/moby#48007 - runconfig: depreciar
DefaultDaemonNetworkModey mover adaemon/network. moby/moby#48008 - runconfig: depreciar
opts.ConvertKVStringsToMap. Esta utilidad ya no se utiliza y se eliminará en la próxima versión. moby/moby#48016 - runconfig: depreciar
IsPreDefinedNetwork. moby/moby#48011
API
- Almacén de imágenes de containerd:
POST /images/{name}/pushahora admite un parámetroplatform(tipo OCI Platform codificado en JSON) que permite seleccionar un manifiesto de plataforma específico de la imagen multiplataforma. Esto es experimental y puede cambiar en futuras versiones de la API. moby/moby#47679 POST /services/createyPOST /services/{id}/updateahora soportanOomScoreAdj. moby/moby#47950- La API
ContainerListdevuelve anotaciones de contenedores. moby/moby#47866 POST /containers/createyPOST /services/createahora aceptanOptionscomo parte deHostConfig.Mounts.TmpfsOptionslo que permite establecer opciones para montajes tmpfs. moby/moby#46809- La propiedad
Healthcheck.StartIntervalahora se ignora correctamente al actualizar un servicio de Swarm utilizando versiones de la API anteriores a la v1.44. moby/moby#47991 GET /eventsahora soporta el eventocreatede imagen que se emite cuando se construye una nueva imagen, independientemente de si fue etiquetada o no. moby/moby#47929GET /infoahora incluye un campoContainerdque contiene información sobre la ubicación del socket de la API de containerd y los espacios de nombres de containerd utilizados por el daemon para ejecutar contenedores y plugins. moby/moby#47239- Depreciar los campos no estándar (config) en la salida de inspección de imagen. El campo
Configdevuelto por este endpoint (utilizado paradocker image inspect) devolvía campos adicionales que no forman parte de la configuración de la imagen y no forman parte de la Docker Image Spec ni de la OCI Image Spec. Estos campos nunca se establecen (y siempre devuelven el valor predeterminado para el tipo), pero no se omiten en la respuesta cuando se dejan vacíos. Como estos campos no estaban destinados a formar parte de la respuesta de configuración de la imagen, están depreciados y se eliminarán en futuras versiones de la API. - Depreciar la bandera del daemon
--api-cors-headery la correspondiente opción de configuracióndaemon.json. Se eliminarán en la próxima versión principal. moby/moby#45313
Los siguientes campos depreciados se incluyen actualmente en la respuesta de la API, pero no forman parte del Config de la imagen subyacente: moby/moby#47941
HostnameDomainnameAttachStdinAttachStdoutAttachStderrTtyOpenStdinStdinOnceImageNetworkDisabled(ya se omite a menos que esté establecido)MacAddress(ya se omite a menos que esté establecido)StopTimeout(ya se omite a menos que esté establecido)
Cambios en el SDK de Go
- El callback de la API del cliente para las siguientes funciones requiere ahora un parámetro de contexto. moby/moby#47536
client.RequestPrivilegeFuncclient.ImageSearchOptions.AcceptPermissionsFuncimage.ImportOptions.PrivilegeFunc
- Eliminar alias depreciados para los tipos de imagen. moby/moby#47900
ImageImportOptionsImageCreateOptionsImagePullOptionsImagePushOptionsImageListOptionsImageRemoveOptions
- Introducir el alias de tipo
Ulimitparagithub.com/docker/go-units.Ulimit. El tipoUlimittal como se utiliza en la API se define en un módulo de Go que pasará a una nueva ubicación en el futuro. Se añade un alias de tipo para reducir la fricción que supone mover el tipo a una nueva ubicación. El alias asegura que el código existente siga funcionando, pero su definición puede cambiar en el futuro. Se recomienda a los usuarios utilizar este alias en lugar deunits.Ulimitdirectamente. moby/moby#48023
Mover y renombrar tipos, cambiando sus rutas de importación y nombres exportados. moby/moby#47936, moby/moby#47873, moby/moby#47887, moby/moby#47882, moby/moby#47921, moby/moby#48040
- Mover los siguientes tipos a
api/types/container:BlkioStatEntryBlkioStatsCPUStatsCPUUsageContainerExecInspectContainerPathStatContainerStatsContainersPruneReportCopyToContainerOptionsExecConfigExecStartCheckMemoryStatsNetworkStatsPidsStatsStatsJSONStatsStorageStatsThrottlingData
- Mover los siguientes tipos a
api/types/image:ImagesPruneReportImageImportSourceImageLoadResponse
- Mover el tipo
ExecStartOptionsaapi/types/backend. - Mover el tipo
VolumesPruneReportaapi/types/volume. - Mover el tipo
EventsOptionsaapi/types/events. - Mover el tipo
ImageSearchOptionsaapi/types/registry. - Eliminar el prefijo
Networky mover los siguientes tipos aapi/types/network:NetworkCreateResponseNetworkConnectNetworkDisconnectNetworkInspectOptionsEndpointResourceNetworkListOptionsNetworkCreateOptionsNetworkCreateRequestNetworksPruneReport
- Mover
NetworkResourceaapi/types/network.
Actualizaciones de empaquetado
- Actualizar Buildx a v0.15.1. docker/docker-ce-packaging#1029
- Actualizar BuildKit a v0.14.1. moby/moby#48028
- Actualizar runc a v1.1.13. moby/moby#47976
- Actualizar Compose a v2.28.1. moby/docker-ce-packaging#1032
27.0.0
No hay versión 27.0.0 debido a un error durante la pre-versión de 27.0.0-rc.1 en GitHub que dio lugar a la creación de la etiqueta v27.0.0. Desafortunadamente, la etiqueta ya fue recogida por el Go Module Mirror por lo que no es posible cambiar limpiamente la v27.0.0. Para solucionar esto, la 27.0.1 será el primer lanzamiento de la 27.0.