Notas de la versión de Docker Engine 23.0
NoteA partir de la versión 23.0.0 de Docker Engine, Buildx se distribuye en un paquete independiente:
docker-buildx-plugin. In versiones anteriores, Buildx estaba incluido en el paquetedocker-ce-cli. Al actualizar a esta versión de Docker Engine, asegúrate de actualizar todos los paquetes. Por ejemplo, en Ubuntu:$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginConsulta las instrucciones de instalación de Docker Engine para tu sistema operativo para obtener más detalles sobre la actualización de Docker Engine.
Esta página describe los cambios más recientes, adiciones, problemas conocidos y correcciones para Docker Engine versión 23.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.
A partir de la versión 23.0.0, Docker Engine deja de utilizar la versión basada en CalVer y comienza a utilizar el formato de versión SemVer. Cambiar el formato de la versión es un paso previo hacia la compatibilidad con módulos de Go, pero el repositorio aún no utiliza módulos de Go y sigue requiriendo el uso de una versión "+incompatible". Se sigue trabajando hacia la compatibilidad con módulos de Go en una futura versión.
23.0.6
2023-05-08Para 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 que el controlador de almacenamiento vfs no funcione sobre NFS. moby/moby#45465
Actualizaciones de empaquetado
- Actualizar Go a
1.19.9. docker/docker-ce-packaging#889, docker/cli#4254, moby/moby#45455 - Actualizar
containerda v1.6.21 - Actualizar
runca v1.1.7
23.0.5
2023-04-26Para obtener una lista completa de las solicitudes de extracción (pull requests) y los cambios en esta versión, consulta los hitos correspondientes en GitHub:
Correcciones de errores y mejoras
- Añadir la opción
--all/-aal depurar (pruning) volúmenes. docker/cli#4229 - Añadir
--format=jsonparadocker info. docker/cli#4320 - Corregir la pérdida de logs con el controlador de logs AWSLogs. moby/moby#45350
- Corregir una regresión introducida en la v23.0.4 donde dockerd se negaba a iniciarse si se proporcionaba el parámetro de configuración fixed-cidr pero no bip. moby/moby#45403
- Corregir un pánico (panic) en libnetwork durante el inicio del daemon moby/moby#45376
- Corregir que no se envíe el evento "tag" cuando se construye una imagen con
buildx. moby/moby#45410
Actualizaciones de empaquetado
- Actualizar Compose a
2.17.3. docker/docker-ce-packaging#883
23.0.4
2023-04-17Para 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 de rendimiento en la CLI de Docker 23.0.0 docker/cli#4141.
- Corregir que el indicador de progreso en
docker cpno funcione de la manera esperada docker/cli#4157. - Corregir el completado de la terminal para
docker compose --filedocker/cli#4177. - Corregir un error causado por el manejo incorrecto de "default-address-pools" en
daemon.jsonmoby/moby#45246.
Actualizaciones de empaquetado
- Corregir paquetes faltantes para CentOS 9 Stream.
- Actualizar Go a
1.19.8. docker/docker-ce-packaging#878, docker/cli#4164, moby/moby#45277, que contiene correcciones para CVE-2023-24537, CVE-2023-24538, CVE-2023-24534 y CVE-2023-24536
23.0.3
2023-04-04NoteDebido a un problema con los repositorios de paquetes de CentOS 9 Stream, los paquetes para CentOS 9 no están disponibles actualmente. Los paquetes para CentOS 9 se pueden añadir más tarde o como parte de la próxima versión de parche (23.0.4).
Correcciones de errores y mejoras
- Se corrigieron varios problemas que podían provocar que las redes overlay cifradas de Swarm no mantuvieran sus garantías, mitigando CVE-2023-28841, CVE-2023-28840 y CVE-2023-28842.
- La falta de soporte del kernel para redes overlay cifradas ahora se reporta como un error.
- Las redes overlay cifradas se configuran de manera temprana, en lugar de esperar a que se adjunten múltiples nodos.
- Las redes overlay cifradas ahora son utilizables en Red Hat Enterprise Linux 9 mediante el uso del módulo del kernel
xt_bpf. - Los usuarios de las redes overlay de Swarm deben revisar GHSA-vwm3-crmr-xfxw para asegurarse de que no se haya producido una exposición no intencionada.
Actualizaciones de empaquetado
23.0.2
2023-03-28Para 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
- Resolver por completo las comprobaciones faltantes para
apparmor_parsercuando se detecta un kernel compatible con AppArmor. containerd/containerd#8087, moby/moby#45043 - Asegurar que las credenciales se eliminen de las URLs de Git al generar buildinfo de BuildKit. Corrige CVE-2023-26054. moby/moby#45110
- Corregir que los volúmenes anónimos creados por una línea
VOLUMEen un Dockerfile se excluyan del prune de volúmenes. moby/moby#45159 - Corregir un fallo al propagar correctamente los errores durante la eliminación de volúmenes en un nodo de Swarm. moby/moby#45155
- Solución temporal para un error en
COPY --linkde BuildKit deshabilitando la optimización mergeop/diffop. moby/moby#45112 - Limpiar adecuadamente las tareas secundarias cuando se elimina un trabajo principal de Swarm. moby/swarmkit#3112, moby/moby#45107
- Corregir la lógica de creación de servicios de Swarm para que se puedan utilizar juntos un GenericResource y una red no predeterminada. moby/swarmkit#3082, moby/moby#45107
- Corregir que el soporte de Swarm CSI requiera que el plugin CSI ofrezca endpoints de staging para publicar un volumen. moby/swarmkit#3116, moby/moby#45107
- Corregir un pánico causado por el almacenamiento en búfer de logs en algunas configuraciones. containerd/fifo#47, moby/moby#45051
- Registrar los errores en la capa de traducción de la API REST a gRPC de Swarm en el nivel debug para reducir la redundancia y el ruido. moby/moby#45016
- Corregir un problema de resolución de DNS que afectaba a los contenedores creados con
--dns-opto--dns-searchcuando se utilizasystemd-resolvedfuera del contenedor. moby/moby#45000 - Corregir un pánico al registrar errores en el manejo de consultas DNS originadas desde el interior de un contenedor. moby/moby#44980
- Mejorar la velocidad de
docker pspermitiendo a los usuarios excluirse de los cálculos de tamaño con--size=false. docker/cli#4107 - Extender el soporte para el completado de bash a todos los plugins. docker/cli#4092
- Corregir que
docker stack deployfalle en Windows cuando están presentes variables de entorno especiales establecidas porcmd.exe. docker/cli#4083 - Añadir compatibilidad hacia adelante para futuras versiones de la API considerando que las etiquetas de imagen vacías son iguales a
<none>. docker/cli#4065 - Escribir atómicamente archivos de contexto para reducir en gran medida la probabilidad de corrupción y mejorar el mensaje de error para un contexto corrupto. docker/cli#4063
Empaquetado
- Actualizar Go a
1.19.7. docker/docker-ce-packaging#857, docker/cli#4086, moby/moby#45137 - Actualizar
containerdav1.6.19. moby/moby#45084, moby/moby#45099 - Actualizar Buildx a
v0.10.4. docker/docker-ce-packaging#855 - Actualizar Compose a
v2.17.2. docker/docker-ce-packaging#867
23.0.1
2023-02-09Para 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 que los contenedores no se inicien si el kernel tiene habilitado AppArmor, pero
apparmor_parserno está disponible. moby/moby#44942 - Corregir que las construcciones habilitadas con BuildKit con almacenamiento en caché en línea provoquen la caída del daemon. moby/moby#44944
- Corregir que BuildKit cargue incorrectamente capas en caché creadas por versiones anteriores. moby/moby#44959
- Corregir un problema por el cual las redes
ipvlancreadas antes de la actualización impedían el inicio del daemon. moby/moby#44937 - Corregir que el controlador de almacenamiento
overlay2falle tempranamente en las pruebas demetacopycuando se inicializa en un sistema de archivos subyacente no compatible. moby/moby#44922 - Corregir que los eventos de salida de
execse malinterpreten como salidas de contenedores en algunos entornos de ejecución, como Kata Containers. moby/moby#44892 - Mejorar el mensaje de error devuelto por la CLI al recibir una respuesta JSON truncada causada por la interrupción de la API a mitad de la solicitud. docker/cli#4004
- Corregir un código de salida de CLI incorrecto al intentar ejecutar un directorio con un
runccompilado usando Go 1.20. docker/cli#4004 - Corregir el error al tratar el argumento de tamaño de
--device-write-bpscomo una ruta. docker/cli#4004
Empaquetado
- Añadir
/etc/dockeral empaquetado de RPM y DEB. docker/docker-ce-packaging#842- No todos los casos de uso se beneficiarán; si dependes de esto, debes ejecutar explícitamente
mkdir -p /etc/docker.
- No todos los casos de uso se beneficiarán; si dependes de esto, debes ejecutar explícitamente
- Actualizar Compose a
v2.16.0. docker/docker-ce-packaging#844
23.0.0
2023-02-01Para 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
- Configurar Buildx y BuildKit como el constructor predeterminado en Linux. moby/moby#43992
- Alias
docker buildadocker buildx build. docker/cli#3314 - El constructor heredado aún se puede utilizar configurando explícitamente
DOCKER_BUILDKIT=0. - Existen diferencias en cómo BuildKit y el constructor heredado manejan las construcciones multi-etapa. Para obtener más información, consulta Construcciones multi-etapa.
- Alias
- Añadir soporte para descargar capas comprimidas con
zstd. moby/moby#41759, moby/moby#42862 - Añadir soporte para entornos de ejecución (runtimes) OCI alternativos en Linux, compatibles con la API v2 del runtime de containerd. moby/moby#43887, moby/moby#43993
- Añadir soporte para containerd
runhcsshim en Windows (desactivado por defecto). moby/moby#42089 - Añadir
dockerd --validatepara comprobar la configuración JSON del daemon y salir. moby/moby#42393 - Añadir la capacidad de configurar el proxy HTTP del daemon mediante banderas o configuración JSON. moby/moby#42835
- Añadir soporte para redes punto a punto RFC 3021 (IPv4 /31s) y hosts individuales (IPv4 /32s). Para redes con dos o menos direcciones, IPAM no reservará una dirección de red y de difusión (broadcast). moby/moby#42626
- Añadir soporte para configurar
ipvlan_flagy usar el modoipvlan_model3sen el controlador de redipvlan. moby/moby#42542 - Añadir soporte para mostrar el valor de la opción
metacopypara el controlador de almacenamientooverlay2. moby/moby#43557 - Añadir soporte para describir dispositivos de Windows usando la sintaxis
IDType://ID. moby/moby#43368 - Añadir informes de versiones de
RootlessKit,slirp4netnsyVPNKit. moby/moby#42330 - Añadir soporte experimental para volúmenes de clúster SwarmKit (CSI). moby/moby#41982
- CLI: Añadir opciones de volumen de clúster (CSI) a
docker volume. docker/cli#3606 - CLI: Añadir soporte de volumen de clúster (CSI) a
docker stack. docker/cli#3662
- CLI: Añadir opciones de volumen de clúster (CSI) a
- Añadir soporte para trabajos SwarmKit en
docker stack deploy. docker/cli#2907 - Añadir el comando
docker stack configpara generar los archivos de configuración combinados e interpolados utilizados porstack deploy. docker/cli#3544 - Añadir un nuevo comando
docker context showque imprime el nombre del contexto actual. docker/cli#3567 - Añadir la variante abreviada
--format=jsonde--format="{{ json . }}"a todos los comandos que admiten la bandera--format. docker/cli#2936 - Añadir una opción
--quieta los comandosdocker createydocker runpara suprimir la salida al descargar una imagen. docker/cli#3377 - Añadir una opción
--forceal subcomandodocker network rm. Hace que la CLI devuelva un código de salida 0 incluso si la red no existe. No tiene efecto en el procedimiento del lado del servidor para eliminar una red. docker/cli#3547 - Añadir una opción
--signaladocker stopydocker restart. docker/cli#3614 - Añadir una bandera
-v/--versionadocker-proxy. moby/moby#44703 - Los plugins ahora se descubren en rutas de nivel de usuario bien conocidas cuando el daemon se ejecuta en modo rootless. moby/moby#44778
- El daemon ahora maneja las codificaciones JSON alternativas comunes en el archivo de configuración JSON de forma limpia y reporta errores útiles. moby/moby#44777, moby/moby#44832
- Se acepta UTF-8 con una marca de orden de bytes (BOM).
- Se acepta UTF-16 con una marca de orden de bytes (BOM).
- El UTF-8 no válido se reporta de forma temprana y con un mensaje de error comprensible.
- Permitir el uso de
STOPSIGNALa través dedocker commit. moby/moby#43369 - Añadir una nueva opción al controlador de logs
awslogspara permitir omitir la creación del flujo de logs en CloudWatch. moby/moby#42132 - Añadir una nueva opción al controlador de logs
awslogspara especificar el formato de log que se envía a CloudWatch. moby/moby#42838 - Añadir una nueva opción al controlador de logs
fluentdpara establecer el intervalo de reconexión. moby/moby#43100 - Añadir nuevos configuradores de opciones al cliente de la API de Go:
WithTLSClientConfigFromEnv(),WithHostFromEnv()yWithVersionFromEnv(). moby/moby#42224 - Añadir generación de completado de comandos de la terminal a través de un subcomando
docker completion. docker/cli#3429 - API: Añadir una cabecera
SwarmaGET /_pingyHEAD /_ping, lo que permite la detección en una sola solicitud del soporte de Swarm. moby/moby#42064 - API: Añadir un parámetro
signalaPOST /containers/{id}/stopyPOST /containers/{id}/restartpara establecer la señal utilizada. moby/moby#43206 - API: Añadir un parámetro
CreateMountPointaPOST /containers/create. moby/moby#43484 - API: Añadir un parámetro
shared-sizeaGET /images/jsonpara habilitar el cálculo del tamaño compartido de las imágenes. moby/moby#42531 - API: Añadir un parámetro
typeaGET /system/df, para controlar qué tipos de objetos se consideran al calcular el uso del disco. moby/moby#42559 - systemd: Utilizar un containerd gestionado por systemd en lugar de un containerd gestionado por el daemon. moby/moby#42373
- systemd: Iniciar
docker.servicedespués detime-set.target. moby/moby#43107
Eliminado
- Eliminar el soporte para leer la configuración desde
~/.dockercfg. docker/cli#2504- Esta ubicación ha estado depreciada desde la versión 1.7.0.
- Aviso de depreciación
- Eliminar las opciones del daemon
-vy--graphen favor de--data-root. docker/cli#3739- Estas opciones han estado ocultas y depreciadas desde la versión 17.05.
- Aviso de depreciación
- Eliminar el ordenamiento de resultados en el lado del cliente, en favor del orden en que los devuelve la API de búsqueda. docker/cli#3470
- Eliminar las advertencias relacionadas con los controladores de almacenamiento depreciados de la CLI. Las advertencias ahora son manejadas por el daemon. docker/cli#3542
- Eliminar el campo de cliente
Experimentaldedocker version. docker/cli#3543 - Requerir la aceptación explícita (opt-in) para usar controladores de almacenamiento depreciados, y no seleccionarlos automáticamente al actualizar. moby/moby#43378
- Eliminar el soporte depreciado para los controladores de almacenamiento
overlayyoverlay2en sistemas de archivos subyacentes sin soporte parad_type. moby/moby#43472 - Eliminar la opción depreciada
overrideKernelCheckdel controlador de almacenamientooverlay2. moby/moby#44279 Aviso de depreciación - Eliminar el soporte para el runtime OCI depreciado
io.containerd.runtime.v1.linux. moby/moby#43695 - Eliminar LCOW (Linux Containers on Windows). moby/moby#42451, moby/moby#42499, moby/moby#42506, moby/moby#42511, moby/moby#42520, moby/moby#42683, moby/moby#42684, moby/moby#42685, moby/moby#43187
- LCOW se introdujo como una vista previa técnica en 17.09 y se deprecio en 20.10.
- Aviso de depreciación
- Eliminar las opciones del daemon relacionadas con las redes overlay heredadas utilizadas con Swarm independiente.
- Eliminar las opciones
--cluster-xxdedockerd. moby/moby#40383 - Eliminar
host-discoveryy redes overlay con almacenes k/v externos. moby/moby#42247 - Aviso de depreciación
- Eliminar las opciones
- Eliminar una alternativa (fallback) de plataforma
armdepreciada.--platform linux/arm/vYahora devolverá un error cuandoarm/vYno esté disponible en lugar de descargar la imagen incorrecta. moby/moby#44414 - Eliminar los configuradores de opciones depreciados
SetCustomHTTPHeaders(),CustomHTTPHeaders()de la API del cliente Go. moby/moby#42694 - Eliminar la opción configuradora depreciada
WithDialer()de la API del cliente Go. moby/moby#44022- Utilizar
WithDialContext()en su lugar.
- Utilizar
- Eliminar la implementación del daemon de
opts.QuotedString. La implementación se ha trasladado a la CLI. moby/moby#43250 - Eliminar el ID de daemon separado de trust-key en el daemon, y deshabilitar la generación de trust-key. moby/moby#43555
- API: Eliminar la opción depreciada
KernelMemorydePOST /containers/createen la versión de la API >= 1.42. moby/moby#43214
Depreciado
- Requerir Windows Server RS5 / LTSC 2019 (compilación 17763) como mínimo para ejecutar el daemon. moby/moby#43254
- Depreciar
BuilderSizeen la versión de la API >= 1.42. moby/moby#42608 - Depreciar
BuildCache.Parenten favor del recién introducidoBuildCache.Parentsen la versión de la API >= 1.42. moby/moby#43908 - Depreciar
pkg/urlutil, trasladando la implementación abuilder/remotecontext/urlutil. moby/moby#43477
Actualizaciones (Upgrades)
- Actualizar Go a
1.19.5. docker/cli#3958, moby/moby#44794 - Actualizar
rootlesskitav0.14.4. moby/moby#42708 - Actualizar
buildkitav0.10.6. moby/moby#43239 - Actualizar
buildxav0.10.2. docker/docker-ce-packaging#840 - Actualizar
swarmkitav2.0.0-20230119195359-904c221ac281. moby/moby#44858 - Actualizar
containerdav1.6.16. moby/moby#44766, moby/moby#44769, moby/moby#44881 - Actualizar
runcav1.1.4. moby/moby#44039 - Actualizar
hcsshimav0.9.6. moby/moby#44658 - El controlador de almacenamiento
btrfsahora depende de las cabeceras del kernel de Linux (>= 4.12) en lugar de las cabeceras de btrfs-progs. moby/moby#44776
Seguridad
- Cambiar los permisos de los archivos
hostconfig.jsonde los contenedores a0600(antes0644). moby/moby#41620 - Corregir que
--seccomp-profileno acepteunconfinedy renombrar el perfil seccomp predeterminado abuiltin. moby/moby#42481 - Construir siempre con soporte de seccomp, y eliminar la etiqueta de construcción
seccomp. moby/moby#42501 - Añadir soporte de seccomp en
riscv64. moby/moby#43553 - Añadir soporte para establecer banderas pasadas a
seccomp(2)en perfiles seccomp. moby/moby#42648 - Refactorizar tipos seccomp para reutilizar runtime-spec, y añadir soporte para
ErrnoRet. moby/moby#42005 - Añadir soporte para
DefaultErrnoReten perfilesseccomp. moby/moby#42604 - Añadir un campo
DefaultErrnoRetexplícito al perfil seccomp predeterminado, sin cambios de comportamiento. moby/moby#42649 - Bloquear
socketconAF_VSOCKen el perfil seccomp predeterminado. moby/moby#44563 - Volver a habilitar
process_vm_readvyprocess_vm_writeven el perfil seccomp predeterminado. moby/moby#42083 - Añadir llamadas al sistema relacionadas con PKU al perfil seccomp predeterminado. moby/moby#43812
- Permitir
clock_settime64conCAP_SYS_TIME. moby/moby#43775 - Permitir
bpfconCAP_BPFyperf_event_openconCAP_PERFMON. moby/moby#43988 - Establecer explícitamente la llamada al sistema
clone3para devolverENOSYSen el perfil seccomp predeterminado, con el fin de garantizar queglibcrecurra correctamente a usarclone. moby/moby#42681
Correcciones de errores y mejoras
- Promover
overlay2para que sea el controlador de almacenamiento predeterminado (btrfsyzfsahora requieren activación explícita). moby/moby#42661 - Añadir un indicador de carga (loading spinner) al comando
docker cp. docker/cli#2708 - Depreciar la función
ElectAuthServer, y hacer que devuelva el registro predeterminado sin llamar al endpoint de la APIGET /info. docker/cli#2819 - Las barras de progreso ya no se invierten al revertir (rolling back) los servicios de Swarm. docker/cli#2940
- Usar
net.JoinHostPort()para corregir el formato con direcciones IPv6. docker/cli#2972 - Los mensajes de error de la CLI ahora se imprimen en
stderr. docker/cli#3044 - Mejorar el rendimiento de
docker infosi se utiliza un--formatpersonalizado que solo usa información local. Con este cambio, la CLI solo utiliza la API del daemon si detecta que se necesita información del daemon. docker/cli#3179 - Eliminar el valor predeterminado de la bandera
--stop-signal, ya que puede no reflejar el valor predeterminado real utilizado por el daemon. docker/cli#3245 - Añadir el esquema
3.10de Compose adocker stack; permitir omitir el campoversion(lo que resulta enlatest). docker/cli#3257 - La versión de Compose
3es ahora equivalente a3.x(la última) endocker stack. docker/cli#3445 - Corregir que
<Ctrl-c>se quede colgado en Windows para salir después de ejecutar un contenedor en modo no interactivo. docker/cli#3302 - Añadir rutas de origen relativas al comando
runen las banderas-v/--volumey-m/--mount. docker/cli#3469 docker exec -tahora establece el tamaño de la consola para el proceso ejecutado inmediatamente cuando se crea. docker/cli#3627- Actualizar el formato de impresión agradable (pretty-print) de
docker infopara proporcionar más detalles sobre los plugins instalados. docker/cli#3645 - Imprimir mensajes de advertencia para los comandos
docker context listydocker context usecuando el contexto es anulado por el entorno. docker/cli#3668 - Añadir una anotación de
aliasespersonalizada que se puede usar para imprimir todos los alias disponibles para un comando. docker/cli#3694 - La CLI ya no crea ni actualiza el archivo de configuración de la CLI al ejecutar
docker context usey seleccionar el contexto actual. docker/cli#3721 - Los contextos inexistentes ahora se ignoran al ejecutar
docker context rm --force. docker/cli#3791 - Añadir la capacidad de anular enteros a
0en archivos de Compose. docker/cli#3812 - SIGINT (
<Ctrl-c>) ahora se transmite a los contenedores en ejecución en lugar de provocar la salida de la CLI. docker/cli#3849 - Mejorar la experiencia de usuario de
docker port CONTAINERordenando los puertos antes de imprimirlos. docker/cli#3892 - API:
GET /containers/{id}/logsyPOST /containers/{id}/attachahora reportan qué formato de flujo sin procesar (raw-stream) está en uso utilizando la cabecera de respuestaContent-typeen la versión de la API >= 1.42. moby/moby#39812 - Establecer el tamaño de sandbox predeterminado para las capas de Windows en 127GB, y asegurar que la bandera
--storage-optsse aplique a todo el almacenamiento en Windows. moby/moby#41636 - Eliminar la sección de plugins del archivo de configuración de containerd (
/var/run/docker/containerd/containerd.toml). moby/moby#41675 - Rechazar manifiestos
nulldurante la importación de archivos tar. moby/moby#41842 - Añadir configuración shim para runtimes personalizados para plugins. moby/moby#41854
- Las comprobaciones de estado de los contenedores ahora se reanudan cuando se reinicia el daemon. moby/moby#41935
- La cuota ya no se deshabilita al limpiar el controlador
btrfs. moby/moby#42273 - Los dispositivos del host que son accesibles ahora se pueden montar en contenedores sin privilegios (rootless) con
--privileged. moby/moby#42638 - Corregir el manejo incorrecto de los patrones de directorios con comodines recursivos
**/fooen.dockerignore. moby/moby#42676 - Extender
docker import --platformpara permitir marcar una imagen importada como de arquitectura extranjera. moby/moby#43103 - La validación de las opciones de tiempo real de la CPU ahora se realiza cuando se inicia el daemon en lugar de realizar validaciones para cada contenedor individual, lo que permite que el inicio falle tempranamente. moby/moby#43131
- Congelar el paquete
namesgeneratorcontra nuevas adiciones. Los usuarios tendrán que estar satisfechos con las 25359 combinaciones existentes de adjetivos y nombres. moby/moby#43210 - API:
containers/{id}/attach/wssolo a flujos de acuerdo con los parámetrosstdin,stdoutystderren la versión de la API >= 1.42. moby/moby#43322 - Corregir que el tráfico UDP en los contenedores no funcione después de que el contenedor se reinicie bajo un tráfico sostenido. moby/moby#43409
- Añadir soporte para descargar imágenes con niveles de características de microarquitectura amd64 personalizados, tal como lo admiten las últimas versiones de Go, GCC, LLVM y otras herramientas de compilación. moby/moby#43434
- Mejorar la validación de solicitudes JSON no válidas en la API. moby/moby#43463
- Mitigar el impacto de los inicios lentos de
execen las comprobaciones de estado. El tiempo de espera de la comprobación ahora solo se aplica a la duración en que se está ejecutando el comando de comprobación de estado. El tiempo que tarda en iniciarse el comando ya no cuenta para el tiempo de espera. moby/moby#43480 - El tamaño de la consola
ttyse establece inmediatamente tras su creación. moby/moby#43593, moby/moby#43622 - Corregir que los montajes
overlay2no se limpien después de inicios fallidos del contenedor o del apagado del daemon. moby/moby#43659 - Coincidir la resolución de la lista de manifiestos con
containerd. moby/moby#43675 - Omitir el uso de
firewalldpara las redes cuando el daemon se está ejecutando en modo rootless. moby/moby#43813 - Las redes NAT personalizadas ahora se vuelven a crear después de reiniciar el daemon si faltan en Windows. moby/moby#43858
- Corregir la terminación del proceso de comprobación de estado del contenedor cuando se agota su tiempo de espera. moby/moby#43994
- Corregir
live-restorecon políticas de reinicio y referencias de volúmenes. moby/moby#44237 - API: Ahora solo los volúmenes anónimos se depuran (pruned) por defecto en la versión de la API >= v1.42. Pasa el filtro
all=truepara depurar los volúmenes con nombre además de los anónimos. moby/moby#44259 - API: Admitir llamadas concurrentes en el endpoint
GET /system/df. moby/moby#42715 - Mejorar la confiabilidad de que el daemon vuelque la pila y salga con el código 2 cuando se le envía un SIGQUIT. moby/moby#44831
- Mejorar la confiabilidad de
docker logs -fen Windows, y evitar que se omitan saltos de línea en el controlador de logslocal. moby/moby#43294 - Corregir un raro bloqueo mutuo (deadlock) en el daemon causado por el almacenamiento en búfer de los logs del contenedor. moby/moby#44856
- Mejorar el manejo de errores en diversas operaciones del sistema de archivos para que el daemon pueda iniciarse en un sistema de archivos subyacente overlayfs. moby/moby#44834
- Corregir un problema por el cual
--ipc=hostno se manejaba correctamente cuando el daemon se ejecutaba en modo rootless. moby/moby#44863 - Corregir un conjunto de problemas de larga data donde las entradas de conntrack obsoletas causaban un enrutamiento incorrecto del tráfico UDP para los contenedores. moby/moby#44752
- Corregir que los contenedores semi-registrados se listen en la API, así como una desreferencia de puntero nulo y pánico causados por el uso de un contenedor parcialmente registrado en las llamadas a la API. moby/moby#44633
- Corregir un fallo al crear la cadena de ip6tables
DOCKER-USER. moby/moby#44845 - Corregir un fallo al limpiar las reglas de iptables cuando el comando
ip6tablesno está disponible. moby/moby#44727 - Corregir un problema por el cual algunas reglas NAT de iptables no se limpiaban después de habilitar el proxy userland. moby/moby#44811
- Corregir un proceso potencialmente filtrado en situaciones raras donde la limpieza de un intento fallido de iniciar un contenedor se manejó de manera incorrecta. moby/moby#44400
- Corregir que la hora
CreatedAtde un volumen refleje la inicialización y no la creación. moby/moby#44725 - Corregir un problema por el cual la CLI informaba incorrectamente un servidor incompatible en lugar de un servidor inalcanzable en algunos comandos. docker/cli#3901, docker/cli#3904
- Corregir el completado roto de volúmenes en Zsh. docker/cli#2998
- Mejorar la salida de
docker contextcuando hay un contexto no válido presente. docker/cli#3847 - Eliminar la decoración ANSI de las anotaciones de ayuda de la CLI cuando la salida no es una TTY, y se añadió una nueva línea para legibilidad. docker/cli#3973
- Añadir
docker container removecomo un alias paradocker container rm. docker/cli#3986
Problemas conocidos
apparmor_parser (hilo de seguimiento)
Algunos usuarios de Debian han reportado problemas con contenedores que no se inician después de actualizar a la rama 23.0.
El mensaje de error indica que el problema se debe a la falta del binario apparmor_parser:
Error response from daemon: AppArmor enabled on system but the docker-default profile could not be loaded: running `apparmor_parser apparmor_parser --version` failed with output:
error: exec: "apparmor_parser": executable file not found in $PATH
Error: failed to start containers: somecontainer
La solución alternativa a este problema es instalar el paquete apparmor manualmente:
apt-get install apparmor
Caché en línea de BuildKit (hilo de seguimiento)
Intentar construir una imagen con la característica de caché en línea de BuildKit (por ejemplo, docker build --build-arg BUILDKIT_INLINE_CACHE=1 ., docker buildx build --cache-to type=inline .) provocará que el daemon salga inesperadamente:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x147ff00]
goroutine 693 [running]:
github.com/docker/docker/vendor/github.com/moby/buildkit/cache.computeBlobChain.func4.1({0x245cca8, 0x4001394960})
/go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/cache/blobs.go:206 +0xc90
github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol.(*call).run(0x40013c2240)
/go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol/flightcontrol.go:121 +0x64
sync.(*Once).doSlow(0x0?, 0x4001328240?)
/usr/local/go/src/sync/once.go:74 +0x100
sync.(*Once).Do(0x4001328240?, 0x0?)
/usr/local/go/src/sync/once.go:65 +0x24
created by github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol.(*call).waitEl daemon se reiniciará si está configurado para hacerlo (por ejemplo, a través de systemd) después de dicha caída. La única mitigación disponible en esta versión es evitar realizar construcciones con la característica de caché en línea habilitada.
BuildKit con caché caliente (hilo de seguimiento)
Si se construyó una imagen con BuildKit en una versión anterior del daemon, y se construye con un daemon 23.0, las capas previamente almacenadas en caché no se restaurarán correctamente. La imagen puede parecer construirse correctamente si no se cambia ninguna línea en el Dockerfile; sin embargo, si se produce una invalidación parcial de la caché debido al cambio de algunas líneas en el Dockerfile, las capas aún válidas y previamente almacenadas en caché no se cargarán correctamente.
Esto se presenta con mayor frecuencia como archivos que deberían estar presentes en la imagen pero que no están presentes en una etapa RUN u otra etapa que haga referencia a archivos, después de cambiar algunas líneas en el Dockerfile:
[+] Building 0.4s (6/6) FINISHED
=> [internal] load build definition from Dockerfile
=> => transferring dockerfile: 102B
=> [internal] load .dockerignore
=> => transferring context: 2B
=> [internal] load metadata for docker.io/library/node:18-alpine
=> [base 1/2] FROM docker.io/library/node:18-alpine@sha256:bc329c7332cffc30c2d4801e38df03cbfa8dcbae2a7a52a449db104794f168a3
=> CACHED [base 2/2] WORKDIR /app
=> ERROR [stage-1 1/1] RUN uname -a
------
> [stage-1 1/1] RUN uname -a:
#0 0.138 runc run failed: unable to start container process: exec: "/bin/sh": stat /bin/sh: no such file or directory
------
Dockerfile:5
--------------------
3 |
4 | FROM base
5 | >>> RUN uname -a
6 |
--------------------
ERROR: failed to solve: process "/bin/sh -c uname -a" did not complete successfully: exit code: 1Para mitigar esto, se debe descartar la caché de construcción anterior. docker builder prune -a vaciará por completo la caché de construcción y permitirá que las construcciones afectadas continúen eliminando las capas de caché mal manejadas.
redes ipvlan (hilo de seguimiento)
Al actualizar a la rama 23.0, la existencia de cualquier red ipvlan impedirá que el daemon se inicie:
panic: interface conversion: interface {} is nil, not string
goroutine 1 [running]:
github.com/docker/docker/libnetwork/drivers/ipvlan.(*configuration).UnmarshalJSON(0x40011533b0, {0x400069c2d0, 0xef, 0xef})
/go/src/github.com/docker/docker/libnetwork/drivers/ipvlan/ipvlan_store.go:196 +0x414
encoding/json.(*decodeState).object(0x4001153440, {0x5597157640?, 0x40011533b0?, 0x559524115c?})
/usr/local/go/src/encoding/json/decode.go:613 +0x650
encoding/json.(*decodeState).value(0x4001153440, {0x5597157640?, 0x40011533b0?, 0x559524005c?})
/usr/local/go/src/encoding/json/decode.go:374 +0x40
encoding/json.(*decodeState).unmarshal(0x4001153440, {0x5597157640?, 0x40011533b0?})
/usr/local/go/src/encoding/json/decode.go:181 +0x204
encoding/json.Unmarshal({0x400069c2d0, 0xef, 0xef}, {0x5597157640, 0x40011533b0})
/usr/local/go/src/encoding/json/decode.go:108 +0xf4
github.com/docker/docker/libnetwork/drivers/ipvlan.(*configuration).SetValue(0x4000d18050?, {0x400069c2d0?, 0x23?, 0x23?})
/go/src/github.com/docker/docker/libnetwork/drivers/ipvlan/ipvlan_store.go:230 +0x38Para mitigar esto, los usuarios afectados pueden volver a una versión anterior y eliminar la red, luego actualizar de nuevo.
Como alternativa, se puede eliminar todo el almacén de redes y recrear las redes después de la actualización. El almacén de redes se encuentra en /var/lib/docker/network/files/local-kv.db. Si el daemon está utilizando un --data-root alternativo, sustituye /var/lib/docker por la ruta alternativa.
Kata Containers (hilo de seguimiento)
La rama 23.0 ofrece soporte para los shims de containerd alternativos, como io.containerd.runsc.v1 (gVisor) e io.containerd.kata.v2 (Kata Containers).
Al usar el runtime de Kata Containers, salir de una sesión de exec detiene el contenedor en ejecución y cuelga la CLI conectada si se abrió una TTY. No existe mitigación en este momento más allá de evitar hacer exec en contenedores que se ejecutan bajo el runtime de Kata.
La causa raíz de este problema es un error de larga data en Moby. Esto se resolverá en una versión futura. Ten en cuenta que el soporte para runtimes OCI alternativos es una nueva característica y que se pueden descubrir problemas similares a medida que más usuarios comiencen a ejercer esta funcionalidad.