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)
- gcplogs: Corregir fuga de memoria/conexión moby/moby#41522
- awslogs: Soporte para AWS imdsv2 moby/moby#41494
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-fromsea 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)
- Corregir fuga de recursos del reenviador de puertos moby/moby#41277
Ejecución (Runtime)
- Actualizar a Golang 1.13.15 moby/moby#41334
- Actualizar a containerd 1.3.7 moby/moby#40408
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)
- Corregir regresión que impide el inicio del daemon en un entorno systemd-nspawn moby/moby#41124 moby/libnetwork#2567
- Corregir la lógica de reintento para crear redes overlay en swarm moby/moby#41124 moby/libnetwork#2565
Ejecución (Runtime)
- Actualizar a Golang 1.13.12 moby/moby#41082
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_EXPERIMENTALno 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
- Corregir compilaciones ARM en ARM64. moby/moby#41027
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 inspecten 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)
- Corregir pánico potencial al reiniciar moby/moby#40809
- Asignar el valor de red correcto al campo Subnet del bridge predeterminado. moby/moby#40565
Ejecución (Runtime)
- Corregir caídas de docker al crear espacios de nombres con UID en
/etc/subuidy/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_DELETEpara 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/subuidy/etc/subgid. moby/moby#40951
Seguridad
- apparmor: añadir reglas faltantes para userns. moby/moby#40564
- SElinux: corregir que los errores
ENOTSUPno 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)
- overlay: eliminar las ejecuciones de modprobe moby/moby#40462
- selinux: mostrar mejores mensajes de error al establecer etiquetas de archivos moby/moby#40547
- Acelerar la recopilación inicial de estadísticas moby/moby#40549
- rootless: usar certs.d desde XDG_CONFIG_HOME moby/moby#40461
- Actualizar a Golang 1.12.17 moby/moby#40533
- Actualizar google.golang.org/grpc a v1.23.1 moby/moby#40566
- Actualizar el binario de containerd a v1.2.13 moby/moby#40540
- Evitar mostrar contenedores detenidos como en ejecución en un caso extremo moby/moby#40555
- Prevenir posibles bloqueos moby/moby#40604
Cliente
- Actualizar a Golang 1.12.17 docker/cli#2342
- Actualizar google.golang.org/grpc a v1.23.1 docker/cli#1884 docker/cli#2373
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)
- Acortar el ID del controlador en exec-root para no superar UNIX_PATH_MAX. docker/engine#424
- Corregir pánico (panic) en
drivers/overlay/encryption.godocker/engine#424 - Corregir carrera de configuración de hwaddr entre la red y udev docker/engine#439
Ejecución (Runtime)
- Actualizar a Golang 1.12.16 moby/moby#40433
- Actualizar el binario de containerd a v1.2.12 moby/moby#40433
- Actualizar runc a la versión v1.0.0-rc10 moby/moby#40433
- Corregir posible pánico en tiempo de ejecución en Lgetxattr docker/engine#454
- rootless: corregir el reenvío de paquetes UDP docker/engine#434
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)
- Actualizar Golang a 1.12.12 docker/engine#418
- Actualizar RootlessKit a v0.7.0 para reforzar slirp4netns con espacios de nombres de montaje y seccomp docker/engine#397
- Corregir la propagación del error GetContainer desde el procesador de eventos docker/engine#407
- Corregir el envío (push) de imágenes OCI docker/engine#405
19.03.4
2019-10-17
Redes (Networking)
- Revertir cambios de libnetwork para corregir problemas con la cadena de iptables
DOCKER-USERdocker/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
404después de ser desplegados.- Solución alternativa: reiniciar todas las tareas mediante
docker service update --force.
- Solución alternativa: reiniciar todas las tareas mediante
- 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 cpdebido a la mitigación de CVE. Se genera un error cuando el origen dedocker cpse establece en/.
19.03.3
2019-10-08
Seguridad
- Parche para
runcen containerd. CVE-2017-18367
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/createdevuelva un código de estado 500 al proporcionar una opción de plataforma incorrecta docker/engine#365 - Corregir que
POST /builddevuelva 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 rmise 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-sizeymax-file=1docker/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 sobreDOCKER-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
- Solución alternativa: Insertar la cadena de iptables después de que se inicie el daemon de docker. Por ejemplo:
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
404después de ser desplegados.- Solución alternativa: reiniciar todas las tareas mediante
docker service update --force.
- Solución alternativa: reiniciar todas las tareas mediante
- 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 cpdebido a la mitigación de CVE. Se genera un error cuando el origen dedocker cpse establece en/.
19.03.2
2019-09-03
Constructor (Builder)
- Corregir
COPY --froma 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 createdocker/cli#1985 - Corregir soporte para la variable de entorno de proxy HTTP docker/cli#2059
Registro de logs (Logging)
- Corregir la lectura de logs de journald. moby/moby#37819 moby/moby#38859
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
404después de ser desplegados.- Solución alternativa: reiniciar todas las tareas mediante
docker service update --force.
- Solución alternativa: reiniciar todas las tareas mediante
- 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
- 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
- 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 cpdebido a la mitigación de CVE. Se genera un error cuando el origen dedocker cpse 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
404después de ser desplegados.- Solución alternativa: reiniciar todas las tareas mediante
docker service update --force.
- Solución alternativa: reiniciar todas las tareas mediante
- 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
- 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
- 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 cpdebido a la mitigación de CVE. Se genera un error cuando el origen dedocker cpse establece en/.
19.03.0
2019-07-22
Constructor (Builder)
- Corregido
COPY --frompara preservar la propiedad (ownership) moby/moby#38599 - builder-next:
- Añadido soporte de caché en línea (inline cache) con
--cache-fromdocker/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
stopprogressen caso de error de descarga docker/engine#215 - Buildkit ahora utiliza el
resolv.confde 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.1por defecto docker/engine#215 - Ya no se depende de una imagen externa para las operaciones COPY/ADD docker/engine#215
- Añadido soporte de caché en línea (inline cache) con
Cliente
- Añadida la bandera
--pids-limitadocker updatedocker/cli#1765 - Añadido soporte de sysctl para servicios docker/cli#1754
- Añadido soporte para
template_driveren archivos compose docker/cli#1746 - Añadido soporte de
--devicepara 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
--domainnameseparada docker/cli#1130 - Añadido soporte para controladores de secretos en
docker stack deploydocker/cli#1783 - Añadida capacidad de usar
Configsde swarm comoCredentialSpecsen servicios docker/cli#1781 - Añadido soporte para
--security-opt systempaths=unconfineddocker/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 rundocker/cli#1767 - Actualizado a Golang 1.12.5 docker/cli#1875
- La salida de
docker system infoahora 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-secreten 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
/infoy se movió la detección al daemon moby/moby#37502 - Añadido soporte HEAD para el endpoint
/_pingmoby/moby#38570 - Añadidas cabeceras
Cache-Controlpara deshabilitar el almacenamiento en caché del endpoint/_pingmoby/moby#38569 - Añadidas las versiones de
containerd,runcydocker-inita/versionmoby/moby#37974 - Añadido endpoint
/grpcno documentado y registrado el controlador de BuildKit moby/moby#38990
Experimental
- Habilitado el checkpoint/restore de contenedores con TTY moby/moby#38405
- LCOW: Añadido soporte para límites de memoria y CPU moby/moby#37296
- Windows: Añadido runtime de ContainerD moby/moby#38541
- Windows: LCOW ahora requiere Windows RS5+ moby/moby#39108
Seguridad
- mount: añadido BindOptions.NonRecursive (API v1.40) moby/moby#38003
- seccomp: se añadió a la lista blanca
io_pgetevents()moby/moby#38895 - seccomp: ahora se permite
ptrace(2)para kernels 4.8+ moby/moby#38137
Ejecución (Runtime)
- Ahora se permite ejecutar
dockerdcomo un usuario no root (modo sin root) moby/moby#38050 - Rootless: soporte opcional proporcionado para el binario SUID
lxc-user-nicdocker/engine#208 - Añadido DeviceRequests a HostConfig para admitir GPUs NVIDIA moby/moby#38828
- Añadido soporte de
--devicepara Windows moby/moby#37638 - Añadido soporte de
memory.kernelTCPpara 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.LookupGroupen lugar de analizar el archivo/etc/grouppara la propiedad de docker.sock para corregir:api.go no respeta nsswitch.confmoby/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
containerda la versión 1.2.6 moby/moby#39016 - Actualizado
runca la versión v1.0.0-rc8, opencontainers/selinux v1.2.2 docker/engine#210 - Actualizado
google.golang.org/grpca 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 --initcon montaje bind de/devmoby/moby#37665 - El número de dispositivo correcto ahora se recupera cuando es superior a 255 y se utiliza la opción
--device-read-bpsmoby/moby#39212 - Corregido el error
Path does not existcuando la ruta definitivamente existe moby/moby#39251
Redes (Networking)
- Se movió el controlador IPVLAN fuera de experimental moby/moby#38983
- Añadido soporte para el filtro 'dangling' moby/moby#31551 docker/libnetwork#2230
- El sandbox del equilibrador de carga ahora se elimina cuando se actualiza un servicio con
--network-rmdocker/engine#213 - Windows: Ahora se fuerza a que una IP nula especificada en
PortBindingssea IPv4zero (0.0.0.0) docker/libnetwork#2376
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)
- Habilitado el controlador gcplogs en Windows moby/moby#37717
- Añadido relleno de ceros para el formato de syslog RFC5424 moby/moby#38335
- Añadido el atributo
IMAGE_NAMEa los eventos de log dejournaldmoby/moby#38032
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
aufsy 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
404después de ser desplegados.- Solución alternativa: reiniciar todas las tareas mediante
docker service update --force.
- Solución alternativa: reiniciar todas las tareas mediante
- 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
- 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
- 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 cpdebido a la mitigación de CVE. Se genera un error cuando el origen dedocker cpse establece en/.