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

Notas de la versión de Docker Engine 19.03

19.03.15

2021-02-01

Seguridad

  • CVE-2021-21285 Evitar que una imagen no válida bloquee el daemon de Docker
  • CVE-2021-21284 Restringir los permisos de archivos para evitar que el root remapeado acceda al estado de docker
  • Asegurar que se apliquen los perfiles AppArmor y SELinux al construir con BuildKit

Cliente

  • Comprobar contextos antes de importarlos para reducir el riesgo de que los archivos extraídos escapen del almacén de contextos

19.03.14

2020-12-01

Seguridad

  • CVE-2020-15257: Actualizar los binarios estáticos empaquetados de containerd a la versión v1.3.9 moby/moby#41731. Los gestores de paquetes deben actualizar el paquete containerd.io.

Constructor (Builder)

  • Las versiones beta de apparmor ahora se analizan correctamente, evitando fallos de construcción moby/moby#41542

Redes (Networking)

  • Corregir pánico (panic) cuando el servicio de swarmkit sigue fallando al iniciarse moby/moby#41635

Ejecución (Runtime)

  • Devolver errores correctos en lugar de errores falsos -EINVAL moby/moby#41293

Modo sin root (Rootless)

  • Bloquear el directorio de estado para evitar la limpieza automática por parte de systemd-tmpfiles moby/moby#41635
  • dockerd-rootless.sh: soportar la nueva convención de ruta de socket containerd shim moby/moby#41557

Registro de logs (Logging)

19.03.13

2020-09-16

Constructor (Builder)

  • buildkit: Corregir desreferencia nula en la lógica de caché moby/moby#41279
  • buildkit: Tratar sockets Unix como archivos normales durante COPY/ADD moby/moby#41269
  • buildkit: Ignorar xattrs del sistema y seguridad en el cálculo para garantizar un almacenamiento en caché de COPY consistente, independientemente del entorno SELinux moby/moby#41222
  • buildkit: Hacer que el comportamiento de --cache-from sea más confiable moby/moby#41222
  • buildkit: Corregir bucle infinito que consume CPU al exportar caché moby/moby#41185

Cliente

  • Actualizar a Golang 1.13.15 docker/cli#2674
  • Corregir problemas de permisos de archivos de configuración (~/.docker/config.json) docker/cli#2631
  • build: Corregir pánico (panic) en terminales con altura cero docker/cli#2719
  • windows: Corregir posible problema con el carácter de nueva línea en la consola docker/cli#2623

Redes (Networking)

  • Limpiar sandbox de red en caso de fallo moby/moby#41081
  • Corregir mensajes de error poco detallados al reenviar errores relacionados con plazos límite (deadlines) al usuario moby/moby#41312
  • Corregir fuga de descriptores de archivos de netns moby/moby#41287

Modo sin root (Rootless)

Ejecución (Runtime)

Windows

  • Corregir tiempo lento de inicio de contenedor de Windows al usar la imagen servercore moby/moby#41192

19.03.12

2020-06-18

Cliente

  • Corregir error que impide cerrar sesión (logout) del registro cuando se usan múltiples archivos de configuración (p. ej., Windows vs WSL2 al usar Docker Desktop) docker/cli#2592
  • Corregir regresión que impide leer metadatos de contexto docker/cli#2586
  • Actualizar a Golang 1.13.12 docker/cli#2575

Redes (Networking)

Ejecución (Runtime)

19.03.11

2020-06-01

Red (Network)

Deshabilitar los anuncios de router IPv6 (Router Advertisements) para prevenir la suplantación de direcciones. CVE-2020-13401

Descripción

En la configuración por defecto de Docker, la interfaz de red del contenedor es un enlace ethernet virtual que va al host (interfaz veth). En esta configuración, un atacante capaz de ejecutar un proceso como root en un contenedor puede enviar y recibir paquetes arbitrarios al host utilizando la capacidad CAP_NET_RAW (presente en la configuración por defecto).

Si IPv6 no está totalmente deshabilitado en el host (a través de ipv6.disable=1 en la línea de comandos del kernel), estará configurado o sin configurar en algunas interfaces, pero es muy probable que el reenvío de ipv6 esté deshabilitado, es decir, /proc/sys/net/ipv6/conf/<interfaz>/forwarding == 0. También por defecto, /proc/sys/net/ipv6/conf/<interfaz>/accept_ra == 1. La combinación de estos 2 sysctls significa que el host acepta anuncios de router (router advertisements) y configura la pila IPv6 usándolos.

Al enviar anuncios de router "falsos" (rogue router advertisements) desde un contenedor, un atacante puede reconfigurar el host para redirigir parte o la totalidad del tráfico IPv6 del host al contenedor controlado por el atacante.

Incluso si no había tráfico IPv6 antes, si el DNS devuelve registros A (IPv4) y AAAA (IPv6), muchas bibliotecas HTTP intentarán conectarse a través de IPv6 primero y luego recurrirán a IPv4 en caso de fallo, dando la oportunidad al atacante de responder. Si por casualidad el host tiene una vulnerabilidad como la RCE del año pasado en apt (CVE-2019-3462), el atacante ahora puede escalar privilegios en el host.

Dado que CAP_NET_ADMIN no está presente por defecto para los contenedores de Docker, el atacante no puede configurar las IPs que quiere MitM, no puede usar iptables para hacer NAT o REDIRECT del tráfico, y no puede usar IP_TRANSPARENT. Sin embargo, el atacante aún puede usar CAP_NET_RAW e implementar una pila tcp/ip en el espacio de usuario.

Consulta kubernetes/kubernetes#91507 para problemas relacionados.

19.03.10

2020-05-29

Cliente

  • Corregir negociación de versión con daemons más antiguos. docker/cli#2538
  • Evitar configurar banderas SSH a través del nombre de host. docker/cli#2560
  • Corregir pánico (panic) cuando DOCKER_CLI_EXPERIMENTAL no es válido. docker/cli#2558
  • Evitar pánicos potenciales en s390x actualizando Go a 1.13.11. docker/cli#2532

Redes (Networking)

  • Corregir regresión en la resolución alternativa de DNS (DNS fallback). moby/moby#41009

Ejecución (Runtime)

  • Evitar pánicos potenciales en s390x actualizando Go a 1.13.11. moby/moby#40978

Empaquetado

19.03.9

2020-05-14

Constructor (Builder)

  • buildkit: Corregir pánico por escritura en mapas concurrentes al construir múltiples imágenes en paralelo. moby/moby#40780
  • buildkit: Corregir problema que impide cambiar el propietario (chowning) de archivos que no pertenecen a root entre etapas con userns. moby/moby#40955
  • Evitar la creación de archivos temporales irrelevantes en Windows. moby/moby#40877

Cliente

  • Corregir pánico en volúmenes de un solo carácter. docker/cli#2471
  • Detección diferida (lazy) de características del daemon para evitar largos tiempos de espera en comandos simples. docker/cli#2442
  • El comando docker context inspect en Windows ahora es más rápido. docker/cli#2516
  • Actualizar a Golang 1.13.10 docker/cli#2431
  • Actualizar gopkg.in/yaml.v2 a v2.2.8 docker/cli#2470

Registro de logs (Logging)

  • Evitar situaciones que impiden que los logs de los contenedores roten debido al cierre de un archivo de log ya cerrado. moby/moby#40921

Redes (Networking)

Ejecución (Runtime)

  • Corregir caídas de docker al crear espacios de nombres con UID en /etc/subuid y /etc/subgid. moby/moby#40562
  • Mejorar el emparejamiento de plataformas ARM. moby/moby#40758
  • overlay2: mostrar el sistema de archivos subyacente. moby/moby#40652
  • Actualizar CRIU a v3.13 "Silicon Willet". moby/moby#40850
  • Mostrar la advertencia de depreciación del esquema 1 de la v2 de registros solo en caso de una alternativa (fallback) exitosa, en lugar de en cualquier error de registro. moby/moby#40681
  • Usar FILE_SHARE_DELETE para archivos de log en Windows. moby/moby#40563
  • Actualizar a Golang 1.13.10 moby/moby#40803

Modo sin root (Rootless)

  • Ahora rootlesskit-docker-proxy devuelve un mensaje de error detallado al exponer puertos privilegiados. moby/moby#40863
  • Soporta IDs numéricos en /etc/subuid y /etc/subgid. moby/moby#40951

Seguridad

  • apparmor: añadir reglas faltantes para userns. moby/moby#40564
  • SElinux: corregir que los errores ENOTSUP no se detecten al reetiquetar. moby/moby#40946

Swarm

  • Aumentar la tasa de recarga del logger para evitar bloqueos en los logs del servicio. moby/moby#40628
  • Corregir el problema por el cual un único swarm manager se queda atascado en estado Down después de reiniciar. moby/moby#40831
  • tasks.db ya no crece indefinidamente moby/moby#40831

18.09.8

2020-03-10

Ejecución (Runtime)

  • Mejorar la mitigación de CVE-2019-14271 para algunas configuraciones de nscd.

19.03.7

2020-03-03

Constructor (Builder)

  • builder-next: Corregir problemas de bloqueo mutuo (deadlock) en casos extremos moby/moby#40557

Ejecución (Runtime)

Cliente

19.03.6

2020-02-12

Constructor (Builder)

  • builder-next: Permitir hashes de firma modernos para el reenvío de ssh docker/engine#453
  • builder-next: Limpiar las reglas onbuild tras su activación docker/engine#453
  • builder-next: Corregir problema con los permisos de directorio cuando los espacios de nombres de usuario están habilitados. moby/moby#40440
  • Actualizar hcsshim para solucionar el fallo de la construcción de docker en Windows 1903. docker/engine#429

Redes (Networking)

Ejecución (Runtime)

19.03.5

2019-11-14

Constructor (Builder)

  • builder-next: Añadida compatibilidad de privilegios (entitlements) en la configuración del constructor. docker/engine#412
  • Corrige en builder-next: errores de permisos al usar secretos de construcción o reenvío ssh con userns-remap docker/engine#420
  • Corrige en builder-next: copia de un enlace simbólico dentro de un directorio ya copiado docker/engine#420

Empaquetado

  • Soporte de paquetes para RHEL 8

Ejecución (Runtime)

19.03.4

2019-10-17

Redes (Networking)

  • Revertir cambios de libnetwork para corregir problemas con la cadena de iptables DOCKER-USER docker/engine#404

Problemas conocidos

Existentes

  • En algunas circunstancias con clústeres grandes, la información de Docker podría, como parte de la sección de Swarm, incluir el error code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304). Esto no indica ningún fallo o mala configuración por parte del usuario y no requiere ninguna acción.
  • Puede ocurrir un conflicto de puertos del orquestador al volver a desplegar todos los servicios como nuevos. Debido a las múltiples solicitudes al manager de Swarm en un corto período de tiempo, algunos servicios no pueden recibir tráfico y causan un error 404 después de ser desplegados.
    • Solución alternativa: reiniciar todas las tareas mediante docker service update --force.
  • CVE-2018-15664 ataque de intercambio de enlaces simbólicos (symlink-exchange) con recorrido de directorios. Solución alternativa hasta que esté disponible la corrección adecuada en la próxima versión de parche: pausar el contenedor (docker pause) antes de realizar operaciones de archivos. moby/moby#39252
  • Regresión de docker cp debido a la mitigación de CVE. Se genera un error cuando el origen de docker cp se establece en /.

19.03.3

2019-10-08

Seguridad

Constructor (Builder)

  • Corrige en builder-next: resolver digest para registros de terceros docker/engine#339
  • Corrige en builder-next: construcciones con espacio de nombres de usuario cuando el daemon se inicia con activación de socket docker/engine#373
  • Corrige en builder-next; session: liberar la conexión del socket ssh reenviado por cada conexión docker/engine#373
  • Corrige en builder-next; llbsolver: error en múltiples importadores de caché docker/engine#373

Cliente

  • Añadido soporte para Docker Template 0.1.6.
  • Mitigar archivos YAML que tienen un exceso de alias. docker/cli#2119

Ejecución (Runtime)

  • Actualizar Golang a 1.12.10 docker/engine#387
  • Actualizar containerd a 1.2.10 docker/engine#385
  • Distribución: modificar la lógica de advertencia al descargar manifiestos con v2 schema1 docker/engine#368
  • Corregir que POST /images/create devuelva un código de estado 500 al proporcionar una opción de plataforma incorrecta docker/engine#365
  • Corregir que POST /build devuelva un código de estado 500 al proporcionar una opción de plataforma incorrecta docker/engine#365
  • Corregir pánico (panic) en ARMv7 de 32 bits causado por un miembro de estructura desalineado docker/engine#363
  • Corregir para devolver "parámetro no válido" al vincular a un contenedor que no existe docker/engine#352
  • Corregir overlay2: error de ocupado (busy error) al montar cuando se usa un kernel >= 5.2 docker/engine#332
  • Corregir que docker rmi se quede atascado en ciertos sistemas mal configurados, por ejemplo, un recurso compartido NFS inactivo. docker/engine#335
  • Corregir el manejo de E/S bloqueada de procesos ejecutados (exec'd) docker/engine#296
  • Corregir jsonfile logger: seguimiento de logs (follow logs) atascado cuando se establece max-size y max-file=1 docker/engine#378

Problemas conocidos

Nuevos

  • Falta la cadena de iptables DOCKER-USER: docker/for-linux#810. Los usuarios no pueden realizar filtrado de tráfico de red de contenedor adicional sobre esta cadena de iptables. No te verás afectado por este problema si no estás personalizando cadenas de iptables sobre DOCKER-USER.
    • Solución alternativa: Insertar la cadena de iptables después de que se inicie el daemon de docker. Por ejemplo:
      iptables -N DOCKER-USER
      iptables -I FORWARD -j DOCKER-USER
      iptables -A DOCKER-USER -j RETURN

Existentes

  • En algunas circunstancias con clústeres grandes, la información de Docker podría, como parte de la sección de Swarm, incluir el error code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304). Esto no indica ningún fallo o mala configuración por parte del usuario y no requiere ninguna acción.
  • Puede ocurrir un conflicto de puertos del orquestador al volver a desplegar todos los servicios como nuevos. Debido a las múltiples solicitudes al manager de Swarm en un corto período de tiempo, algunos servicios no pueden recibir tráfico y causan un error 404 después de ser desplegados.
    • Solución alternativa: reiniciar todas las tareas mediante docker service update --force.
  • CVE-2018-15664 ataque de intercambio de enlaces simbólicos (symlink-exchange) con recorrido de directorios. Solución alternativa hasta que esté disponible la corrección adecuada en la próxima versión de parche: pausar el contenedor (docker pause) antes de realizar operaciones de archivos. moby/moby#39252
  • Regresión de docker cp debido a la mitigación de CVE. Se genera un error cuando el origen de docker cp se establece en /.

19.03.2

2019-09-03

Constructor (Builder)

  • Corregir COPY --from a un directorio inexistente en Windows. moby/moby#39695
  • Corrige en builder-next: comandos de metadatos que no tienen tiempo de creación en el historial moby/moby#39456
  • Corrige en builder-next: cerrar progreso en caso de error al exportar capas moby/moby#39782
  • Actualizar buildkit a 588c73e1e4 moby/moby#39781

Cliente

  • Corregir la detección de rutas absolutas de Windows en sistemas que no son Windows docker/cli#1990
  • Corregir el script de completado de zsh para docker login --username.
  • Corregir context: producir una salida consistente al realizar context create docker/cli#1985
  • Corregir soporte para la variable de entorno de proxy HTTP docker/cli#2059

Registro de logs (Logging)

Redes (Networking)

  • Evitar pánico al adjuntar una red a un contenedor con redes deshabilitadas moby/moby#39589

Ejecución (Runtime)

  • Actualizar Golang a 1.12.8.
  • Corregir un pánico potencial del motor al utilizar la cuota de disco XFS para contenedores moby/moby#39644

Swarm

  • Corregir un problema por el cual no se podían eliminar nodos con múltiples tareas docker/swarmkit#2867

Problemas conocidos

  • En algunas circunstancias con clústeres grandes, la información de Docker podría, como parte de la sección de Swarm, incluir el error code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304). Esto no indica ningún fallo o mala configuración por parte del usuario y no requiere ninguna acción.
  • Puede ocurrir un conflicto de puertos del orquestador al volver a desplegar todos los servicios como nuevos. Debido a las múltiples solicitudes al manager de Swarm en un corto período de tiempo, algunos servicios no pueden recibir tráfico y causan un error 404 después de ser desplegados.
    • Solución alternativa: reiniciar todas las tareas mediante docker service update --force.
  • El tráfico no puede salir del HOST debido a la falta de reglas de Iptables en la cadena FORWARD. Las reglas que faltan son:
    /sbin/iptables --wait -C FORWARD -o docker_gwbridge -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    /sbin/iptables --wait -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    • Solución alternativa: Volver a añadir estas reglas usando un script y definiciones de cron. El script debe contener comandos '-C' para comprobar la presencia de la regla y comandos '-A' para volver a añadir las reglas. Ejecuta el script en un cron a intervalos regulares, por ejemplo, cada minutos.
    • Versiones afectadas: 18.09.1, 19.03.0
  • CVE-2018-15664 ataque de intercambio de enlaces simbólicos (symlink-exchange) con recorrido de directorios. Solución alternativa hasta que esté disponible la corrección adecuada en la próxima versión de parche: pausar el contenedor (docker pause) antes de realizar operaciones de archivos. moby/moby#39252
  • Regresión de docker cp debido a la mitigación de CVE. Se genera un error cuando el origen de docker cp se establece en /.

19.03.1

2019-07-25

Seguridad

  • Corregida la carga de configuraciones basadas en nsswitch dentro de chroot bajo Glibc. CVE-2019-14271

Problemas conocidos

  • En algunas circunstancias con clústeres grandes, la información de Docker podría, como parte de la sección de Swarm, incluir el error code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304). Esto no indica ningún fallo o mala configuración por parte del usuario y no requiere ninguna acción.
  • Puede ocurrir un conflicto de puertos del orquestador al volver a desplegar todos los servicios como nuevos. Debido a las múltiples solicitudes al manager de Swarm en un corto período de tiempo, algunos servicios no pueden recibir tráfico y causan un error 404 después de ser desplegados.
    • Solución alternativa: reiniciar todas las tareas mediante docker service update --force.
  • El tráfico no puede salir del HOST debido a la falta de reglas de Iptables en la cadena FORWARD. Las reglas que faltan son:
    /sbin/iptables --wait -C FORWARD -o docker_gwbridge -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    /sbin/iptables --wait -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    • Solución alternativa: Volver a añadir estas reglas usando un script y definiciones de cron. El script debe contener comandos '-C' para comprobar la presencia de la regla y comandos '-A' para volver a añadir las reglas. Ejecuta el script en un cron a intervalos regulares, por ejemplo, cada minutos.
    • Versiones afectadas: 18.09.1, 19.03.0
  • CVE-2018-15664 ataque de intercambio de enlaces simbólicos (symlink-exchange) con recorrido de directorios. Solución alternativa hasta que esté disponible la corrección adecuada en la próxima versión de parche: pausar el contenedor (docker pause) antes de realizar operaciones de archivos. moby/moby#39252
  • Regresión de docker cp debido a la mitigación de CVE. Se genera un error cuando el origen de docker cp se establece en /.

19.03.0

2019-07-22

Constructor (Builder)

  • Corregido COPY --from para preservar la propiedad (ownership) moby/moby#38599
  • builder-next:
    • Añadido soporte de caché en línea (inline cache) con --cache-from docker/engine#215
    • Se permiten salidas de configuración (outputs configuration) moby/moby#38898
    • Corregida la caché de token como solución alternativa para gcr docker/engine#212
    • Se llama a stopprogress en caso de error de descarga docker/engine#215
    • Buildkit ahora utiliza el resolv.conf de systemd docker/engine#260
    • Ahora se permite configurar las salidas (outputs) de buildkit docker/cli#1766
    • Buscar un archivo dockerignore específico para el Dockerfile (por ejemplo, Dockerfile.dockerignore) para las rutas omitidas docker/engine#215
    • Detectar automáticamente si la ejecución de procesos es posible para binarios x86, arm y arm64 docker/engine#215
    • Actualizado buildkit a 1f89ec1 docker/engine#260
    • Usar la versión frontend de Dockerfile docker/dockerfile:1.1 por defecto docker/engine#215
    • Ya no se depende de una imagen externa para las operaciones COPY/ADD docker/engine#215

Cliente

  • Añadida la bandera --pids-limit a docker update docker/cli#1765
  • Añadido soporte de sysctl para servicios docker/cli#1754
  • Añadido soporte para template_driver en archivos compose docker/cli#1746
  • Añadido soporte de --device para Windows docker/cli#1606
  • Añadido soporte para la configuración de Data Path Port docker/cli#1509
  • Añadido cambio rápido de contexto: comandos docker/cli#1501
  • Añadido soporte para --mount type=bind,bind-nonrecursive,... docker/cli#1430
  • Añadidas réplicas máximas por nodo docker/cli#1612
  • Añadida opción para descargar (pull) imágenes de forma silenciosa (quietly) docker/cli#882
  • Añadida una bandera --domainname separada docker/cli#1130
  • Añadido soporte para controladores de secretos en docker stack deploy docker/cli#1783
  • Añadida capacidad de usar Configs de swarm como CredentialSpecs en servicios docker/cli#1781
  • Añadido soporte para --security-opt systempaths=unconfined docker/cli#1808
  • Añadido framework básico para escribir y ejecutar plugins de CLI docker/cli#1564 docker/cli#1898
  • Actualizado Docker App a la versión v0.8.0 docker/docker-ce-packaging#341
  • Añadido soporte para Docker buildx docker/docker-ce-packaging#336
  • Añadido soporte para Docker Assemble v0.36.0.
  • Añadido soporte para Docker Cluster v1.0.0-rc2.
  • Añadido soporte para Docker Template v0.1.4.
  • Añadido soporte para Docker Registry v0.1.0-rc1.
  • Actualizado google.golang.org/grpc a v1.20.1 docker/cli#1884
  • CLI modificado para pasar opciones específicas del controlador a docker run docker/cli#1767
  • Actualizado a Golang 1.12.5 docker/cli#1875
  • La salida de docker system info ahora segrega la información relevante al cliente y al daemon docker/cli#1638
  • (Experimental) Al apuntar a Kubernetes, se añadió soporte para x-pull-secret: some-pull-secret en configuraciones de servicio de archivos compose docker/cli#1617
  • (Experimental) Al apuntar a Kubernetes, se añadió soporte para x-pull-policy: <Never|Always|IfNotPresent> en configuraciones de servicio de archivos compose docker/cli#1617
  • cp, save, export: Ahora se previene la sobrescritura de archivos irregulares docker/cli#1515
  • Ahora se permite el tipo de volumen npipe en archivos de stack docker/cli#1195
  • Corregido el error de tamaño inicial de tty docker/cli#1529
  • Corregido el problema por el cual las etiquetas copiaban valores de las variables de entorno docker/cli#1671

API

  • Actualizada la versión de la API a v1.40 moby/moby#38089
  • Añadidas advertencias al endpoint /info y se movió la detección al daemon moby/moby#37502
  • Añadido soporte HEAD para el endpoint /_ping moby/moby#38570
  • Añadidas cabeceras Cache-Control para deshabilitar el almacenamiento en caché del endpoint /_ping moby/moby#38569
  • Añadidas las versiones de containerd, runc y docker-init a /version moby/moby#37974
  • Añadido endpoint /grpc no documentado y registrado el controlador de BuildKit moby/moby#38990

Experimental

Seguridad

Ejecución (Runtime)

  • Ahora se permite ejecutar dockerd como un usuario no root (modo sin root) moby/moby#38050
  • Rootless: soporte opcional proporcionado para el binario SUID lxc-user-nic docker/engine#208
  • Añadido DeviceRequests a HostConfig para admitir GPUs NVIDIA moby/moby#38828
  • Añadido soporte de --device para Windows moby/moby#37638
  • Añadido soporte de memory.kernelTCP para linux moby/moby#37043
  • Las especificaciones de credenciales (credential specs) de Windows ahora se pueden pasar directamente al motor moby/moby#38777
  • Añadido soporte de pids-limit en docker update moby/moby#32519
  • Añadido soporte para lista exacta de capacidades moby/moby#38380
  • daemon: Ahora usa el modo ipc 'private' por defecto moby/moby#35621
  • daemon: se cambió a WaitGroup con paso de semáforo para las tareas de inicio moby/moby#38301
  • Ahora se utiliza idtools.LookupGroup en lugar de analizar el archivo /etc/group para la propiedad de docker.sock para corregir: api.go no respeta nsswitch.conf moby/moby#38126
  • cli: corregido el filtro de imágenes cuando se utiliza el filtro de referencias múltiples moby/moby#38171
  • Actualizado a Golang 1.12.5 docker/engine#209
  • Actualizado containerd a la versión 1.2.6 moby/moby#39016
  • Actualizado runc a la versión v1.0.0-rc8, opencontainers/selinux v1.2.2 docker/engine#210
  • Actualizado google.golang.org/grpc a v1.20.1 docker/engine#215
  • Optimización de rendimiento en aufs y almacenamiento de capas para la creación/eliminación masivamente paralela de contenedores moby/moby#39135 moby/moby#39209
  • La raíz ahora se pasa a chroot para Tar/Untar en chroot (CVE-2018-15664) moby/moby#39292
  • Corregido docker --init con montaje bind de /dev moby/moby#37665
  • El número de dispositivo correcto ahora se recupera cuando es superior a 255 y se utiliza la opción --device-read-bps moby/moby#39212
  • Corregido el error Path does not exist cuando la ruta definitivamente existe moby/moby#39251

Redes (Networking)

Swarm

  • Añadido soporte para réplicas máximas por nodo moby/moby#37940
  • Añadido soporte para GMSA CredentialSpecs desde configuraciones de Swarmkit moby/moby#38632
  • Añadido soporte para opciones sysctl en servicios moby/moby#37701
  • Añadido soporte para filtrado en etiquetas de nodo moby/moby#37650
  • Windows: Soporte añadido para montajes de tuberías con nombre en docker service create + stack yml moby/moby#37400
  • Ahora se admite la configuración del puerto UDP de VXLAN moby/moby#38102
  • Ahora se utilizan las restricciones de ubicación del servicio (Service Placement Constraints) en el Enforcer docker/swarmkit#2857
  • Aumentado el tamaño máximo de mensaje gRPC recibido para nodos y secretos docker/engine#256

Registro de logs (Logging)

Depreciación (Deprecation)

  • Depreciar la especificación de manifiesto de imagen v2 schema1 en favor de v2 schema2. Las futuras versiones de Docker eliminarán por completo el soporte para v2 schema1 moby/moby#39365
  • Eliminado el migrador v1.10 moby/moby#38265
  • Ahora se omiten los controladores de almacenamiento obsoletos en la autoselección moby/moby#38019
  • Depreciado el controlador de almacenamiento aufs y se añadió una advertencia moby/moby#38090
  • Eliminado el soporte para la versión 17.09.

Para obtener más información sobre las banderas y APIs depreciadas, consulta la información de depreciación para conocer las fechas previstas de eliminación.

Problemas conocidos

  • En algunas circunstancias con clústeres grandes, la información de Docker podría, como parte de la sección de Swarm, incluir el error code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304). Esto no indica ningún fallo o mala configuración por parte del usuario y no requiere ninguna acción.
  • Puede ocurrir un conflicto de puertos del orquestador al volver a desplegar todos los servicios como nuevos. Debido a las múltiples solicitudes al manager de Swarm en un corto período de tiempo, algunos servicios no pueden recibir tráfico y causan un error 404 después de ser desplegados.
    • Solución alternativa: reiniciar todas las tareas mediante docker service update --force.
  • El tráfico no puede salir del HOST debido a la falta de reglas de Iptables en la cadena FORWARD. Las reglas que faltan son:
    /sbin/iptables --wait -C FORWARD -o docker_gwbridge -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    /sbin/iptables --wait -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    • Solución alternativa: Volver a añadir estas reglas usando un script y definiciones de cron. El script debe contener comandos '-C' para comprobar la presencia de la regla y comandos '-A' para volver a añadir las reglas. Ejecuta el script en un cron a intervalos regulares, por ejemplo, cada minutos.
    • Versiones afectadas: 18.09.1, 19.03.0
  • CVE-2018-15664 ataque de intercambio de enlaces simbólicos (symlink-exchange) con recorrido de directorios. Solución alternativa hasta que esté disponible la corrección adecuada en la próxima versión de parche: pausar el contenedor (docker pause) antes de realizar operaciones de archivos. moby/moby#39252
  • Regresión de docker cp debido a la mitigación de CVE. Se genera un error cuando el origen de docker cp se establece en /.