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

Notas de la versión de Docker Engine versión 27

Tabla de contenidos

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:

27.5

Notas de la versión de Docker Engine versión 27.5.

27.5.1

2025-01-22

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:

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 en 1 permite la ejecución en hosts que no pueden cargar br_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

27.5.0

2025-01-13

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 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 keepStorage ahora heredan el límite defaultKeepStorage como 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: depreciar NumCPU. Esta utilidad tiene el mismo comportamiento que runtime.NumCPU. moby/moby#49247
  • pkg/fileutils: depreciar GetTotalUsedFds: esta función solo se usa internamente y se eliminará en la próxima versión. moby/moby#49209
  • pkg/ioutils: depreciar BytesPipe, 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#49255
  • pkg/reexec: Este paquete está depreciado y se ha movido a un módulo independiente. Utiliza github.com/moby/sys/reexec en su lugar. moby/moby#49135

Actualizaciones de empaquetado

27.4

Notas de la versión de Docker Engine versión 27.4.

27.4.1

2024-12-18

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

  • Corregir asignaciones excesivas de memoria cuando OTel no está configurado. moby/moby#49079
  • El comando docker info y el correspondiente endpoint de la API GET /info ya no incluyen advertencias cuando bridge-nf-call-iptables o bridge-nf-call-ip6tables están desactivados al iniciar el daemon. Ahora se intenta cargar el módulo del kernel br_netfilter cuando es necesario, lo que hacía que esas advertencias fueran inexactas. moby/moby#49090
  • Intentar cargar módulos del kernel, incluyendo ip6_tables y br_netfilter cuando 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 FILTER no se limpiara en caso de fallo. moby/moby#49110

Actualizaciones de empaquetado

27.4.0

2024-12-09

Para 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/json con la opción manifests activada 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 jsonfile o local, 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-proxy desactivado, si el módulo br_netfilter del kernel no estaba cargado y activado. El daemon intentará ahora cargar el módulo y activar bridge-nf-call-iptables o bridge-nf-call-ip6tables al crear una red con el proxy userland desactivado. moby/moby#48685
  • Corregir la carga de los módulos del kernel bridge y br_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 inspect mostrara referencias duplicadas en RepoDigests. 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 USED en docker image ls --tree a IN USE. docker/cli#5518
  • dockerd-rootless-setuptool.sh install --force ahora 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 --mount no 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-USER se 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 login y docker logout ya no actualizan el archivo de configuración si las credenciales no cambiaron. docker/cli#5569
  • Optimizar docker stats para 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 --filter en 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/cdi y /var/run/cdi sean accesibles por la integración de la Interfaz de Dispositivo de Contenedor (CDI). moby/moby#49027

Eliminado

  • Depreciar Daemon.Exists() y Daemon.IsPaused(). Estas funciones ya no se utilizan y se eliminarán en la próxima versión. moby/moby#48719
  • Depreciar container.ErrNameReserved y container.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.Errors en favor de errors.Join de Go. docker/cli#5548

Actualizaciones de empaquetado

27.3

Notas de la versión de Docker Engine versión 27.3.

27.3.1

2024-09-20

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:

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

27.3.0

2024-09-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:

Correcciones de errores y mejoras

  • Almacén de imágenes de containerd: Corregir que docker image prune -a eliminara 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 --feature a las opciones del daemon. moby/moby#48487
  • Actualizar el manejo de la bandera --gpus=0 para que sea consistente con la de NVIDIA Container Runtime. moby/moby#48483
  • Soportar el uso de la interfaz loopback0 de 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ódulo br_netfilter del kernel no estaba cargado normalmente. moby/moby#48511
  • CLI: Corregir un problema por el cual el comando docker volume update causaba 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

27.2

Notas de la versión de Docker Engine versión 27.2.

27.2.1

2024-09-09

Correcciones 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 pull cuando la plataforma de la imagen no coincide. moby/moby#48415
  • CLI: Corregir un problema que causaba que docker login no 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 login ahora devuelve un error en lugar de colgarse si se le llama de forma no interactiva con --password o --password-stdin pero sin --user. docker/cli#5402

Actualizaciones de empaquetado

27.2.0

2024-08-27

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

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.

device-code-login
Inicio de sesión con código de dispositivo

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/json ahora incluye el campo Manifests, 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 manifests en true.

    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-range que terminaba en un límite de 64 bits. moby/moby#48326
  • CLI: Las direcciones IPv6 que muestra docker ps en 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 load en 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

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 (como docker 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 ejecutar docker login.
    Note

    Utilizar docker login con 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 para docker login.

27.1

Notas de la versión de Docker Engine versión 27.1.

27.1.2

2024-08-13

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

  • Corregir una regresión que podía resultar en un error ResourceExhausted desc = grpc: received message larger than max al construir a partir de un Dockerfile grande. moby/moby#48245
  • CLI: Corregir que docker attach imprima un mensaje de error falso de context cancelled. docker/cli#5296
  • CLI: Corregir que docker attach salga con SIGINT en lugar de reenviar la señal al contenedor y esperar a que salga. docker/cli#5302
  • CLI: Corregir que las opciones --device-read-bps y --device-write-bps no 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

27.1.1

2024-07-23

Seguridad

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

27.1.0

2024-07-22

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

  • rootless: añadir Requires=dbus.socket para evitar errores al iniciar el daemon en un host con cgroup v2 con systemd. moby/moby#48141
  • Integración de containerd: el evento image tag ahora 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 history y docker 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 create y docker 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 push use por defecto la bandera --platform al valor de la variable de entorno DOCKER_DEFAULT_PLATFORM en 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/specconv está depreciado y se eliminará en la próxima versión. moby/moby#48185
  • El paquete pkg/containerfs está depreciado y se eliminará en la próxima versión. moby/moby#48185
  • El paquete pkg/directory está depreciado y se eliminará en la próxima versión. moby/moby#48185
  • api/types/system: eliminar el depreciado Info.ExecutionDriver. moby/moby#48184

Actualizaciones de empaquetado

27.0

Notas de la versión de Docker Engine 27.0.

27.0.3

2024-07-01

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:

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 Lchown al 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-27

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

  • 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.Node y el tipo ContainerNode. 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-24

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

Nuevas características

  • Almacén de imágenes de containerd: Añadir la bandera --platform a docker image push y 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 deploy para driver_opts en las redes de un servicio. docker/cli#5125
  • Considerar rutas adicionales /usr/local/libexec y /usr/libexec al buscar los binarios del proxy userland mediante un nombre con prefijo docker-. moby/moby#47804

Correcciones de errores y mejoras

  • Las instancias *client.Client son ahora siempre seguras para su uso concurrente por múltiples goroutines. Anteriormente, esto podía provocar carreras de datos cuando se utilizaba la opción WithAPIVersionNegotiation(). moby/moby#47961
  • Corregir un error que causaba que la CLI de Docker filtrara sockets Unix en $TMPDIR en 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 StartInterval de healthcheck para reflejar el valor documentado de 5s. moby/moby#47799
  • Corregir que docker save y docker load no 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 StartedAt de los contenedores se registra ahora antes del inicio del contenedor, garantizando que StartedAt sea siempre anterior a FinishedAt. 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 nslookup resolver nombres de host externos. Este comportamiento se puede desactivar a través de daemon.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=1 será rechazado. En su lugar, debes usar --network name=mynet,driver-opt=com.docker.network.endpoint.sysctls=net.ipv4.conf.IFNAME.log_martians=1.
IPv6
  • ip6tables ya no es experimental. Puedes eliminar la opción de configuración experimental y continuar usando IPv6, si no es requerido por ninguna otra característica.
  • ip6tables ahora 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 ip6tables habilitado (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 (-p o --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 ip6tables en absoluto, establece "ip6tables": false en daemon.json, o utiliza la opción de CLI --ip6tables=false. Alternativamente, deja ip6tables habilitado, publica los puertos y habilita el enrutamiento directo.
    • Con ip6tables habilitado, si ip6tables no 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-pools si 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 --subnet para especificar una subred IPv6, o añadir rangos IPv6 a default-address-pools en daemon.json.
    • A partir de esta versión, cuando se crea una red bridge con --ipv6 y 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.
  • 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"}} en daemon.json, o dockerd --default-network-opt=bridge=com.docker.network.enable_ipv6=true en la línea de comandos. moby/moby#47867
  • Enrutamiento directo para redes IPv6, con ip6tables habilitado. 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 con ip6tables habilitado. 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 direcciones 0.0.0.0 o :: y no se debe indicar un puerto de host.
    • Ten en cuenta que los puertos de contenedor publicados, en modo nat o routed, 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.
  • Si firewalld se está ejecutando en el host, Docker crea la política docker-forwarding para permitir el reenvío desde cualquier zona a la zona docker. 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 80 dará lugar a que se asigne el mismo puerto efímero para 0.0.0.0 y ::, y -p 8080-8083:80 seleccionará 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á.
  • 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/net de 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 --ipv6 al crearla. Otras soluciones son configurar el SO para deshabilitar IPv6 por defecto en las nuevas interfaces, montar /proc/sys/net como lectura-escritura, o usar un kernel sin soporte para IPv6.
  • 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 NewTempArchive y TempArchive. 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.ValidateID y pkg/stringid.IsShortID. moby/moby#47995
  • runconfig: depreciar SetDefaultNetModeIfBlank y mover ContainerConfigWrapper a api/types/container. moby/moby#48007
  • runconfig: depreciar DefaultDaemonNetworkMode y mover a daemon/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}/push ahora admite un parámetro platform (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/create y POST /services/{id}/update ahora soportan OomScoreAdj. moby/moby#47950
  • La API ContainerList devuelve anotaciones de contenedores. moby/moby#47866
  • POST /containers/create y POST /services/create ahora aceptan Options como parte de HostConfig.Mounts.TmpfsOptions lo que permite establecer opciones para montajes tmpfs. moby/moby#46809
  • La propiedad Healthcheck.StartInterval ahora se ignora correctamente al actualizar un servicio de Swarm utilizando versiones de la API anteriores a la v1.44. moby/moby#47991
  • GET /events ahora soporta el evento create de imagen que se emite cuando se construye una nueva imagen, independientemente de si fue etiquetada o no. moby/moby#47929
  • GET /info ahora incluye un campo Containerd que 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 Config devuelto por este endpoint (utilizado para docker 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-header y la correspondiente opción de configuración daemon.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

  • Hostname
  • Domainname
  • AttachStdin
  • AttachStdout
  • AttachStderr
  • Tty
  • OpenStdin
  • StdinOnce
  • Image
  • NetworkDisabled (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.RequestPrivilegeFunc
    • client.ImageSearchOptions.AcceptPermissionsFunc
    • image.ImportOptions.PrivilegeFunc
  • Eliminar alias depreciados para los tipos de imagen. moby/moby#47900
    • ImageImportOptions
    • ImageCreateOptions
    • ImagePullOptions
    • ImagePushOptions
    • ImageListOptions
    • ImageRemoveOptions
  • Introducir el alias de tipo Ulimit para github.com/docker/go-units.Ulimit. El tipo Ulimit tal 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 de units.Ulimit directamente. 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:
    • BlkioStatEntry
    • BlkioStats
    • CPUStats
    • CPUUsage
    • ContainerExecInspect
    • ContainerPathStat
    • ContainerStats
    • ContainersPruneReport
    • CopyToContainerOptions
    • ExecConfig
    • ExecStartCheck
    • MemoryStats
    • NetworkStats
    • PidsStats
    • StatsJSON
    • Stats
    • StorageStats
    • ThrottlingData
  • Mover los siguientes tipos a api/types/image:
    • ImagesPruneReport
    • ImageImportSource
    • ImageLoadResponse
  • Mover el tipo ExecStartOptions a api/types/backend.
  • Mover el tipo VolumesPruneReport a api/types/volume.
  • Mover el tipo EventsOptions a api/types/events.
  • Mover el tipo ImageSearchOptions a api/types/registry.
  • Eliminar el prefijo Network y mover los siguientes tipos a api/types/network:
    • NetworkCreateResponse
    • NetworkConnect
    • NetworkDisconnect
    • NetworkInspectOptions
    • EndpointResource
    • NetworkListOptions
    • NetworkCreateOptions
    • NetworkCreateRequest
    • NetworksPruneReport
  • Mover NetworkResource a api/types/network.

Actualizaciones de empaquetado

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.