# Notas de la versión de Docker Engine 19.03


## 19.03.15
2021-02-01

### Seguridad

* [CVE-2021-21285](https://github.com/moby/moby/security/advisories/GHSA-6fj5-m822-rqx8) Evitar que una imagen no válida bloquee el daemon de Docker
* [CVE-2021-21284](https://github.com/moby/moby/security/advisories/GHSA-7452-xqpj-6rpc) 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](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15257):
  Actualizar los binarios estáticos empaquetados de containerd a la versión v1.3.9 [moby/moby#41731](https://github.com/moby/moby/pull/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](https://github.com/moby/moby/pull/41542)

### Redes (Networking)

- Corregir pánico (panic) cuando el servicio de swarmkit sigue fallando al iniciarse [moby/moby#41635](https://github.com/moby/moby/pull/41635)

### Ejecución (Runtime)

- Devolver errores correctos en lugar de errores falsos -EINVAL [moby/moby#41293](https://github.com/moby/moby/pull/41293)

### Modo sin root (Rootless)

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

### Registro de logs (Logging)

- gcplogs: Corregir fuga de memoria/conexión [moby/moby#41522](https://github.com/moby/moby/pull/41522)
- awslogs: Soporte para AWS imdsv2 [moby/moby#41494](https://github.com/moby/moby/pull/41494)

## 19.03.13
2020-09-16

### Constructor (Builder)

- buildkit: Corregir desreferencia nula en la lógica de caché [moby/moby#41279](https://github.com/moby/moby/pull/41279)
- buildkit: Tratar sockets Unix como archivos normales durante COPY/ADD [moby/moby#41269](https://github.com/moby/moby/pull/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](https://github.com/moby/moby/pull/41222)
- buildkit: Hacer que el comportamiento de `--cache-from` sea más confiable [moby/moby#41222](https://github.com/moby/moby/pull/41222)
- buildkit: Corregir bucle infinito que consume CPU al exportar caché [moby/moby#41185](https://github.com/moby/moby/pull/41185)

### Cliente

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

### Redes (Networking)

- Limpiar sandbox de red en caso de fallo [moby/moby#41081](https://github.com/moby/moby/pull/41081)
- Corregir mensajes de error poco detallados al reenviar errores relacionados con plazos límite (deadlines) al usuario [moby/moby#41312](https://github.com/moby/moby/pull/41312)
- Corregir fuga de descriptores de archivos de netns [moby/moby#41287](https://github.com/moby/moby/41287)

### Modo sin root (Rootless)

- Corregir fuga de recursos del reenviador de puertos [moby/moby#41277](https://github.com/moby/moby/pull/41277)

### Ejecución (Runtime)

- Actualizar a Golang 1.13.15 [moby/moby#41334](https://github.com/moby/moby/pull/41334)
- Actualizar a containerd 1.3.7 [moby/moby#40408](https://github.com/moby/moby/pull/40408)

### Windows

- Corregir tiempo lento de inicio de contenedor de Windows al usar la imagen servercore [moby/moby#41192](https://github.com/moby/moby/pull/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](https://github.com/docker/cli/pull/2592)
- Corregir regresión que impide leer metadatos de contexto [docker/cli#2586](https://github.com/docker/cli/pull/2586)
- Actualizar a Golang 1.13.12 [docker/cli#2575](https://github.com/docker/cli/pull/2575)

### Redes (Networking)

- Corregir regresión que impide el inicio del daemon en un entorno systemd-nspawn [moby/moby#41124](https://github.com/moby/moby/pull/41124) [moby/libnetwork#2567](https://github.com/moby/libnetwork/pull/2567)
- Corregir la lógica de reintento para crear redes overlay en swarm [moby/moby#41124](https://github.com/moby/moby/pull/41124) [moby/libnetwork#2565](https://github.com/moby/libnetwork/pull/2565)

### Ejecución (Runtime)

- Actualizar a Golang 1.13.12 [moby/moby#41082](https://github.com/moby/moby/pull/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](https://cve.mitre.org/cgi-bin/cvename.cgi?name=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](https://github.com/kubernetes/kubernetes/issues/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](https://github.com/docker/cli/pull/2538)
- Evitar configurar banderas SSH a través del nombre de host. [docker/cli#2560](https://github.com/docker/cli/pull/2560)
- Corregir pánico (panic) cuando `DOCKER_CLI_EXPERIMENTAL` no es válido. [docker/cli#2558](https://github.com/docker/cli/pull/2558)
- Evitar pánicos potenciales en s390x actualizando Go a 1.13.11. [docker/cli#2532](https://github.com/docker/cli/pull/2532)

### Redes (Networking)
- Corregir regresión en la resolución alternativa de DNS (DNS fallback). [moby/moby#41009](https://github.com/moby/moby/pull/41009)

### Ejecución (Runtime)
- Evitar pánicos potenciales en s390x actualizando Go a 1.13.11. [moby/moby#40978](https://github.com/moby/moby/pull/40978)

### Empaquetado
- Corregir compilaciones ARM en ARM64. [moby/moby#41027](https://github.com/moby/moby/pull/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](https://github.com/moby/moby/pull/40780)
- buildkit: Corregir problema que impide cambiar el propietario (chowning) de archivos que no pertenecen a root entre etapas con userns. [moby/moby#40955](https://github.com/moby/moby/pull/40955)
- Evitar la creación de archivos temporales irrelevantes en Windows. [moby/moby#40877](https://github.com/moby/moby/pull/40877)

### Cliente
- Corregir pánico en volúmenes de un solo carácter. [docker/cli#2471](https://github.com/docker/cli/pull/2471)
- Detección diferida (lazy) de características del daemon para evitar largos tiempos de espera en comandos simples. [docker/cli#2442](https://github.com/docker/cli/pull/2442)
- El comando `docker context inspect` en Windows ahora es más rápido. [docker/cli#2516](https://github.com/docker/cli/pull/2516)
- Actualizar a Golang 1.13.10 [docker/cli#2431](https://github.com/docker/cli/pull/2431)
- Actualizar gopkg.in/yaml.v2 a v2.2.8 [docker/cli#2470](https://github.com/docker/cli/pull/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](https://github.com/moby/moby/pull/40921)

### Redes (Networking)
- Corregir pánico potencial al reiniciar [moby/moby#40809](https://github.com/moby/moby/pull/40809)
- Asignar el valor de red correcto al campo Subnet del bridge predeterminado. [moby/moby#40565](https://github.com/moby/moby/pull/40565)

### Ejecución (Runtime)
- Corregir caídas de docker al crear espacios de nombres con UID en `/etc/subuid` y `/etc/subgid`. [moby/moby#40562](https://github.com/moby/moby/pull/40562)
- Mejorar el emparejamiento de plataformas ARM. [moby/moby#40758](https://github.com/moby/moby/pull/40758)
- overlay2: mostrar el sistema de archivos subyacente. [moby/moby#40652](https://github.com/moby/moby/pull/40652)
- Actualizar CRIU a v3.13 "Silicon Willet". [moby/moby#40850](https://github.com/moby/moby/pull/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](https://github.com/moby/moby/pull/40681)
- Usar `FILE_SHARE_DELETE` para archivos de log en Windows. [moby/moby#40563](https://github.com/moby/moby/pull/40563)
- Actualizar a Golang 1.13.10 [moby/moby#40803](https://github.com/moby/moby/pull/40803)

### Modo sin root (Rootless)
- Ahora rootlesskit-docker-proxy devuelve un mensaje de error detallado al exponer puertos privilegiados. [moby/moby#40863](https://github.com/moby/moby/pull/40863)
- Soporta IDs numéricos en `/etc/subuid` y `/etc/subgid`. [moby/moby#40951](https://github.com/moby/moby/pull/40951)

### Seguridad
- apparmor: añadir reglas faltantes para userns. [moby/moby#40564](https://github.com/moby/moby/pull/40564)
- SElinux: corregir que los errores `ENOTSUP` no se detecten al reetiquetar. [moby/moby#40946](https://github.com/moby/moby/pull/40946)

### Swarm
- Aumentar la tasa de recarga del logger para evitar bloqueos en los logs del servicio. [moby/moby#40628](https://github.com/moby/moby/pull/40628)
- Corregir el problema por el cual un único swarm manager se queda atascado en estado Down después de reiniciar. [moby/moby#40831](https://github.com/moby/moby/pull/40831)
- tasks.db ya no crece indefinidamente [moby/moby#40831](https://github.com/moby/moby/pull/40831)

## 18.09.8
2020-03-10

### Ejecución (Runtime)

- Mejorar la mitigación de [CVE-2019-14271](https://nvd.nist.gov/vuln/detail/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](https://github.com/moby/moby/pull/40557)

### Ejecución (Runtime)

* overlay: eliminar las ejecuciones de modprobe [moby/moby#40462](https://github.com/moby/moby/pull/40462)
* selinux: mostrar mejores mensajes de error al establecer etiquetas de archivos [moby/moby#40547](https://github.com/moby/moby/pull/40547)
* Acelerar la recopilación inicial de estadísticas [moby/moby#40549](https://github.com/moby/moby/pull/40549)
- rootless: usar certs.d desde XDG_CONFIG_HOME [moby/moby#40461](https://github.com/moby/moby/pull/40461)
- Actualizar a Golang 1.12.17 [moby/moby#40533](https://github.com/moby/moby/pull/40533)
- Actualizar google.golang.org/grpc a v1.23.1 [moby/moby#40566](https://github.com/moby/moby/pull/40566)
- Actualizar el binario de containerd a v1.2.13 [moby/moby#40540](https://github.com/moby/moby/pull/40540)
- Evitar mostrar contenedores detenidos como en ejecución en un caso extremo [moby/moby#40555](https://github.com/moby/moby/pull/40555)
- Prevenir posibles bloqueos [moby/moby#40604](https://github.com/moby/moby/pull/40604)

### Cliente

- Actualizar a Golang 1.12.17 [docker/cli#2342](https://github.com/docker/cli/pull/2342)
- Actualizar google.golang.org/grpc a v1.23.1 [docker/cli#1884](https://github.com/docker/cli/pull/1884) [docker/cli#2373](https://github.com/docker/cli/pull/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](https://github.com/docker/engine/pull/453)
- builder-next: Limpiar las reglas onbuild tras su activación [docker/engine#453](https://github.com/docker/engine/pull/453)
- builder-next: Corregir problema con los permisos de directorio cuando los espacios de nombres de usuario están habilitados. [moby/moby#40440](https://github.com/moby/moby/pull/40440)
- Actualizar hcsshim para solucionar el fallo de la construcción de docker en Windows 1903. [docker/engine#429](https://github.com/docker/engine/pull/429)

### Redes (Networking)

- Acortar el ID del controlador en exec-root para no superar UNIX_PATH_MAX. [docker/engine#424](https://github.com/docker/engine/pull/424)
- Corregir pánico (panic) en `drivers/overlay/encryption.go` [docker/engine#424](https://github.com/docker/engine/pull/424)
- Corregir carrera de configuración de hwaddr entre la red y udev [docker/engine#439](https://github.com/docker/engine/pull/439)

### Ejecución (Runtime)

* Actualizar a Golang 1.12.16 [moby/moby#40433](https://github.com/moby/moby/pull/40433)
* Actualizar el binario de containerd a v1.2.12 [moby/moby#40433](https://github.com/moby/moby/pull/40453)
* Actualizar runc a la versión v1.0.0-rc10 [moby/moby#40433](https://github.com/moby/moby/pull/40453)
- Corregir posible pánico en tiempo de ejecución en Lgetxattr [docker/engine#454](https://github.com/docker/engine/pull/454)
- rootless: corregir el reenvío de paquetes UDP [docker/engine#434](https://github.com/docker/engine/pull/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](https://github.com/docker/engine/pull/412)
* Corrige en builder-next: errores de permisos al usar secretos de construcción o reenvío ssh con userns-remap [docker/engine#420](https://github.com/docker/engine/pull/420)
* Corrige en builder-next: copia de un enlace simbólico dentro de un directorio ya copiado [docker/engine#420](https://github.com/docker/engine/pull/420)

### Empaquetado

* Soporte de paquetes para RHEL 8

### Ejecución (Runtime)

* Actualizar Golang a 1.12.12 [docker/engine#418](https://github.com/docker/engine/pull/418)
* Actualizar RootlessKit a v0.7.0 para reforzar slirp4netns con espacios de nombres de montaje y seccomp [docker/engine#397](https://github.com/docker/engine/pull/397)
* Corregir la propagación del error GetContainer desde el procesador de eventos [docker/engine#407](https://github.com/docker/engine/pull/407)
* Corregir el envío (push) de imágenes OCI [docker/engine#405](https://github.com/docker/engine/pull/405)

## 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](https://github.com/docker/engine/pull/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](https://nvd.nist.gov/vuln/detail/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](https://github.com/moby/moby/pull/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

* Parche para `runc` en containerd. [CVE-2017-18367](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-18367)

### Constructor (Builder)

* Corrige en builder-next: resolver digest para registros de terceros [docker/engine#339](https://github.com/docker/engine/pull/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](https://github.com/docker/engine/pull/373)
* Corrige en builder-next; session: liberar la conexión del socket ssh reenviado por cada conexión [docker/engine#373](https://github.com/docker/engine/pull/373)
* Corrige en builder-next; llbsolver: error en múltiples importadores de caché [docker/engine#373](https://github.com/docker/engine/pull/373)

### Cliente

* Añadido soporte para Docker Template 0.1.6.
* Mitigar archivos YAML que tienen un exceso de alias. [docker/cli#2119](https://github.com/docker/cli/pull/2119)

### Ejecución (Runtime)

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

### Problemas conocidos

#### Nuevos

* Falta la cadena de iptables `DOCKER-USER`: [docker/for-linux#810](https://github.com/docker/for-linux/issues/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](https://nvd.nist.gov/vuln/detail/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](https://github.com/moby/moby/pull/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](https://github.com/moby/moby/pull/39695)
* Corrige en builder-next: comandos de metadatos que no tienen tiempo de creación en el historial [moby/moby#39456](https://github.com/moby/moby/issues/39456)
* Corrige en builder-next: cerrar progreso en caso de error al exportar capas [moby/moby#39782](https://github.com/moby/moby/pull/39782)
* Actualizar buildkit a 588c73e1e4 [moby/moby#39781](https://github.com/moby/moby/pull/39781)

### Cliente

* Corregir la detección de rutas absolutas de Windows en sistemas que no son Windows [docker/cli#1990](https://github.com/docker/cli/pull/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](https://github.com/docker/cli/pull/1874)
* Corregir soporte para la variable de entorno de proxy HTTP [docker/cli#2059](https://github.com/docker/cli/pull/2059)

### Registro de logs (Logging)

* Corregir la lectura de logs de journald. [moby/moby#37819](https://github.com/moby/moby/pull/37819) [moby/moby#38859](https://github.com/moby/moby/pull/38859)

### Redes (Networking)

* Evitar pánico al adjuntar una red a un contenedor con redes deshabilitadas [moby/moby#39589](https://github.com/moby/moby/pull/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](https://github.com/moby/moby/pull/39644)

### Swarm

* Corregir un problema por el cual no se podían eliminar nodos con múltiples tareas [docker/swarmkit#2867](https://github.com/docker/swarmkit/pull/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 <x> minutos.
     - Versiones afectadas: 18.09.1, 19.03.0
* [CVE-2018-15664](https://nvd.nist.gov/vuln/detail/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](https://github.com/moby/moby/pull/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](https://cve.mitre.org/cgi-bin/cvename.cgi?name=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 <x> minutos.
     - Versiones afectadas: 18.09.1, 19.03.0
 * [CVE-2018-15664](https://nvd.nist.gov/vuln/detail/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](https://github.com/moby/moby/pull/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](https://github.com/moby/moby/pull/38599)
* builder-next:
    - Añadido soporte de caché en línea (inline cache) con `--cache-from` [docker/engine#215](https://github.com/docker/engine/pull/215)
    - Se permiten salidas de configuración (outputs configuration) [moby/moby#38898](https://github.com/moby/moby/pull/38898)
    - Corregida la caché de token como solución alternativa para gcr [docker/engine#212](https://github.com/docker/engine/pull/212)
    - Se llama a `stopprogress` en caso de error de descarga [docker/engine#215](https://github.com/docker/engine/pull/215)
    - Buildkit ahora utiliza el `resolv.conf` de systemd [docker/engine#260](https://github.com/docker/engine/pull/260)
    - Ahora se permite configurar las salidas (outputs) de buildkit [docker/cli#1766](https://github.com/docker/cli/pull/1766)
    - Buscar un archivo dockerignore específico para el Dockerfile (por ejemplo, Dockerfile.dockerignore) para las rutas omitidas [docker/engine#215](https://github.com/docker/engine/pull/215)
    - Detectar automáticamente si la ejecución de procesos es posible para binarios x86, arm y arm64 [docker/engine#215](https://github.com/docker/engine/pull/215)
    - Actualizado buildkit a 1f89ec1 [docker/engine#260](https://github.com/docker/engine/pull/260)
    - Usar la versión frontend de Dockerfile `docker/dockerfile:1.1` por defecto [docker/engine#215](https://github.com/docker/engine/pull/215)
    - Ya no se depende de una imagen externa para las operaciones COPY/ADD [docker/engine#215](https://github.com/docker/engine/pull/215)

### Cliente

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

### API

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

### Experimental
* Habilitado el checkpoint/restore de contenedores con TTY [moby/moby#38405](https://github.com/moby/moby/pull/38405)
* LCOW: Añadido soporte para límites de memoria y CPU [moby/moby#37296](https://github.com/moby/moby/pull/37296)
* Windows: Añadido runtime de ContainerD [moby/moby#38541](https://github.com/moby/moby/pull/38541)
* Windows: LCOW ahora requiere Windows RS5+ [moby/moby#39108](https://github.com/moby/moby/pull/39108)

### Seguridad

* mount: añadido BindOptions.NonRecursive (API v1.40) [moby/moby#38003](https://github.com/moby/moby/pull/38003)
* seccomp: se añadió a la lista blanca `io_pgetevents()` [moby/moby#38895](https://github.com/moby/moby/pull/38895)
* seccomp: ahora se permite `ptrace(2)` para kernels 4.8+ [moby/moby#38137](https://github.com/moby/moby/pull/38137)

### Ejecución (Runtime)

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

### Redes (Networking)

* Se movió el controlador IPVLAN fuera de experimental [moby/moby#38983](https://github.com/moby/moby/pull/38983)
* Añadido soporte para el filtro 'dangling' [moby/moby#31551](https://github.com/moby/moby/pull/31551) [docker/libnetwork#2230](https://github.com/docker/libnetwork/pull/2230)
* El sandbox del equilibrador de carga ahora se elimina cuando se actualiza un servicio con `--network-rm` [docker/engine#213](https://github.com/docker/engine/pull/213)
* Windows: Ahora se fuerza a que una IP nula especificada en `PortBindings` sea IPv4zero (0.0.0.0) [docker/libnetwork#2376](https://github.com/docker/libnetwork/pull/2376)

### Swarm

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

### Registro de logs (Logging)

* Habilitado el controlador gcplogs en Windows [moby/moby#37717](https://github.com/moby/moby/pull/37717)
* Añadido relleno de ceros para el formato de syslog RFC5424 [moby/moby#38335](https://github.com/moby/moby/pull/38335)
* Añadido el atributo `IMAGE_NAME` a los eventos de log de `journald` [moby/moby#38032](https://github.com/moby/moby/pull/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](https://github.com/moby/moby/pull/39365)
* Eliminado el migrador v1.10 [moby/moby#38265](https://github.com/moby/moby/pull/38265)
* Ahora se omiten los controladores de almacenamiento obsoletos en la autoselección [moby/moby#38019](https://github.com/moby/moby/pull/38019)
* Depreciado el controlador de almacenamiento `aufs` y se añadió una advertencia [moby/moby#38090](https://github.com/moby/moby/pull/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](/engine/deprecated/) 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 <x> minutos.
     - Versiones afectadas: 18.09.1, 19.03.0
* [CVE-2018-15664](https://nvd.nist.gov/vuln/detail/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](https://github.com/moby/moby/pull/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 `/`.

