Notes de version Docker Engine 19.03
19.03.15
2021-02-01
Sécurité
- CVE-2021-21285 Empêcher qu'une image invalide fasse planter le démon docker
- CVE-2021-21284 Verrouiller les permissions de fichiers pour empêcher un root remappé d'accéder à l'état docker
- Assurer que les profils AppArmor et SELinux sont appliqués lors de la construction avec BuildKit
Client
- Vérifier les contextes avant de les importer pour réduire le risque d'échappement de fichiers extraits du magasin de contexte
19.03.14
2020-12-01
Sécurité
- CVE-2020-15257: Mise à jour des binaires statiques intégrés de containerd vers v1.3.9 moby/moby#41731. Les gestionnaires de packages doivent mettre à jour le package containerd.io.
Builder
- Les versions bêta d'apparmor sont maintenant analysées correctement, empêchant les échecs de construction moby/moby#41542
Réseau
- Correction d'une panique lorsque le service swarmkit continue d'échouer à démarrer moby/moby#41635
Runtime
- Retourner les erreurs correctes au lieu de fausses -EINVAL moby/moby#41293
Rootless
- Verrouiller le répertoire d'état pour empêcher le nettoyage automatique par systemd-tmpfiles moby/moby#41635
- dockerd-rootless.sh: support pour la nouvelle convention de chemin de socket containerd shim moby/moby#41557
Journalisation
- gcplogs: Correction de fuite mémoire/connexion moby/moby#41522
- awslogs: Support pour AWS imdsv2 moby/moby#41494
19.03.13
2020-09-16
Builder
- buildkit: Correction de déréférencement nul dans la logique de cache moby/moby#41279
- buildkit: Traiter les sockets Unix comme des fichiers réguliers pendant COPY/ADD moby/moby#41269
- buildkit: Ignorer les xattrs système et sécurité dans le calcul pour assurer un cache COPY cohérent indépendamment de l'environnement SELinux moby/moby#41222
- buildkit: Rendre le comportement de
--cache-from
plus fiable moby/moby#41222 - buildkit: Correction d'une boucle infinie consommant du CPU lors de l'export de cache moby/moby#41185
Client
- Mise à jour vers Golang 1.13.15 docker/cli#2674
- Correction des problèmes de permission de fichier de configuration (~/.docker/config.json) docker/cli#2631
- build: Correction de panique sur terminaux avec hauteur zéro docker/cli#2719
- windows: Correction d'un problème potentiel avec le caractère de nouvelle ligne dans la console docker/cli#2623
Réseau
- Nettoyer le sandbox réseau en cas d'échec moby/moby#41081
- Correction des messages d'erreur superficiels en transmettant les erreurs liées aux délais à l'utilisateur moby/moby#41312
- Correction de fuites de descripteurs de fichiers netns moby/moby#41287
Rootless
- Correction de fuite de ressources du redirecteur de ports moby/moby#41277
Runtime
- Mise à jour vers Golang 1.13.15 moby/moby#41334
- Mise à jour vers containerd 1.3.7 moby/moby#40408
Windows
- Correction du temps de démarrage lent des conteneurs Windows lors de l'utilisation de l'image servercore moby/moby#41192
19.03.12
2020-06-18
Client
- Correction d'un bug empêchant la déconnexion du registre lors de l'utilisation de plusieurs fichiers de configuration (par ex. Windows vs WSL2 lors de l'utilisation de Docker Desktop) docker/cli#2592
- Correction d'une régression empêchant la lecture des métadonnées de contexte docker/cli#2586
- Mise à jour vers Golang 1.13.12 docker/cli#2575
Réseau
- Correction d'une régression empêchant le démarrage du démon dans un environnement systemd-nspawn moby/moby#41124 moby/libnetwork#2567
- Correction de la logique de nouvelle tentative pour créer des réseaux overlay dans swarm moby/moby#41124 moby/libnetwork#2565
Runtime
- Mise à jour vers Golang 1.13.12 moby/moby#41082
19.03.11
2020-06-01
Réseau
Désactivation des annonces de routeur IPv6 pour empêcher l'usurpation d'adresse. CVE-2020-13401
Description
Dans la configuration par défaut de Docker, l'interface réseau du conteneur est un lien ethernet virtuel vers l'hôte (interface veth).
Dans cette configuration, un attaquant capable d'exécuter un processus en tant que root dans un conteneur peut envoyer et recevoir des paquets arbitraires vers l'hôte en utilisant la capacité CAP_NET_RAW
(présente dans la configuration par défaut).
Si IPv6 n'est pas totalement désactivé sur l'hôte (via ipv6.disable=1
sur la ligne de commande du noyau), il sera soit non configuré soit configuré sur certaines interfaces, mais il est assez probable que le routage ipv6 soit désactivé, c'est-à-dire /proc/sys/net/ipv6/conf//forwarding == 0
. Aussi par défaut, /proc/sys/net/ipv6/conf//accept_ra == 1
. La combinaison de ces 2 sysctls signifie que l'hôte accepte les annonces de routeur et configure la pile IPv6 en les utilisant.
En envoyant des annonces de routeur "malveillantes" depuis un conteneur, un attaquant peut reconfigurer l'hôte pour rediriger une partie ou tout le trafic IPv6 de l'hôte vers le conteneur contrôlé par l'attaquant.
Même s'il n'y avait pas de trafic IPv6 auparavant, si le DNS retourne des enregistrements A (IPv4) et AAAA (IPv6), de nombreuses bibliothèques HTTP essaieront de se connecter via IPv6 d'abord puis de revenir à IPv4, donnant une opportunité à l'attaquant de répondre. Si par hasard l'hôte a une vulnérabilité comme le RCE de l'année dernière dans apt (CVE-2019-3462), l'attaquant peut maintenant escalader vers l'hôte.
Comme CAP_NET_ADMIN
n'est pas présent par défaut pour les conteneurs Docker, l'attaquant ne peut pas configurer les IPs qu'il veut intercepter, il ne peut pas utiliser iptables pour NAT ou REDIRECT le trafic, et il ne peut pas utiliser IP_TRANSPARENT
.
L'attaquant peut cependant toujours utiliser CAP_NET_RAW
et implémenter une pile tcp/ip dans l'espace utilisateur.
Voir kubernetes/kubernetes#91507 pour les problèmes connexes.
19.03.10
2020-05-29
Client
- Correction de la négociation de version avec un moteur plus ancien. docker/cli#2538
- Éviter de définir les drapeaux SSH via le nom d'hôte. docker/cli#2560
- Correction de panique lorsque DOCKER_CLI_EXPERIMENTAL est invalide. docker/cli#2558
- Éviter une panique potentielle sur s390x en mettant à niveau Go vers 1.13.11. docker/cli#2532
Réseau
- Correction de la régression de fallback DNS. moby/moby#41009
Runtime
- Éviter une panique potentielle sur s390x en mettant à niveau Go vers 1.13.11. moby/moby#40978
Packaging
- Correction des builds ARM sur ARM64. moby/moby#41027
19.03.9
2020-05-14
Builder
- buildkit: Correction de panique d'écriture de map concurrente lors de la construction de plusieurs images en parallèle. moby/moby#40780
- buildkit: Correction d'un problème empêchant le chown de fichiers non possédés par root entre étapes avec userns. moby/moby#40955
- Éviter la création de fichiers temporaires non pertinents sur Windows. moby/moby#40877
Client
- Correction de panique sur volumes à caractère unique. docker/cli#2471
- Détection paresseuse des fonctionnalités du démon pour éviter de longs délais d'attente sur les commandes simples. docker/cli#2442
- docker context inspect sur Windows est maintenant plus rapide. docker/cli#2516
- Mise à jour vers Golang 1.13.10. docker/cli#2431
- Mise à jour de gopkg.in/yaml.v2 vers v2.2.8. docker/cli#2470
Journalisation
- Éviter une situation empêchant la rotation des journaux de conteneur due à la fermeture d'un fichier journal fermé. moby/moby#40921
Réseau
- Correction d'une panique potentielle lors du redémarrage. moby/moby#40809
- Assigner la valeur réseau correcte au champ Subnet du pont par défaut. moby/moby#40565
Runtime
- Correction du crash docker lors de la création d'espaces de noms avec UID dans /etc/subuid et /etc/subgid. moby/moby#40562
- Amélioration de la correspondance de plateforme ARM. moby/moby#40758
- overlay2: afficher le système de fichiers de sauvegarde. moby/moby#40652
- Mise à jour de CRIU vers v3.13 "Silicon Willet". moby/moby#40850
- Afficher l'avertissement de dépréciation du schéma v2 schema1 du registre seulement lors d'un fallback réussi, par opposition à toute erreur de registre. moby/moby#40681
- Utiliser FILE_SHARE_DELETE pour les fichiers journaux sur Windows. moby/moby#40563
- Mise à jour vers Golang 1.13.10. moby/moby#40803
Rootless
- Maintenant rootlesskit-docker-proxy retourne un message d'erreur détaillé lors de l'exposition de ports privilégiés. moby/moby#40863
- Support des ID numériques dans /etc/subuid et /etc/subgid. moby/moby#40951
Sécurité
- apparmor: ajout des règles manquantes pour userns. moby/moby#40564
- SElinux: correction des erreurs ENOTSUP non détectées lors du réétiquetage. moby/moby#40946
Swarm
- Augmentation du taux de remplissage pour le logger afin d'éviter le blocage sur les journaux de service. moby/moby#40628
- Correction d'un problème où un seul gestionnaire swarm est bloqué en état Down après redémarrage. moby/moby#40831
- tasks.db ne grandit plus indéfiniment. moby/moby#40831
19.03.8
2020-03-10
Runtime
- Amélioration de l'atténuation pour CVE-2019-14271 pour certaines configurations nscd.
19.03.7
2020-03-03
Builder
- builder-next: Correction de blocage dans les coins en cas de deadlock. moby/moby#40557
Runtime
- overlay: supprimer les exécutables modprobe. moby/moby#40462
- selinux: afficher de meilleurs messages d'erreur lors de la définition des étiquettes de fichier. moby/moby#40547
- Accélérer la collecte des statistiques initiales. moby/moby#40549
- rootless: utiliser certs.d de XDG_CONFIG_HOME. moby/moby#40461
- Mise à jour vers Golang 1.12.17. moby/moby#40533
- Mise à jour de google.golang.org/grpc vers v1.23.1. moby/moby#40566
- Mise à jour de l'exécutable containerd vers v1.2.13. moby/moby#40540
- Prévenir d'afficher les conteneurs arrêtés comme en cours d'exécution dans un cas limite. moby/moby#40555
- Prévenir une verrouille potentielle. moby/moby#40604
Client
- Mise à jour vers Golang 1.12.17. docker/cli#2342
- Mise à jour de google.golang.org/grpc vers v1.23.1. docker/cli#1884 docker/cli#2373
19.03.6
2020-02-12
Builder
- builder-next: Permettre les hachages de signature modernes pour le transfert ssh. docker/engine#453
- builder-next: Effacer les règles onbuild après déclenchement. docker/engine#453
- builder-next: Correction d'un problème avec les permissions de répertoire lorsque usernamespaces est activé. moby/moby#40440
- Mise à jour de hcsshim pour résoudre le problème de construction docker échouant sur Windows 1903. docker/engine#429
Réseau
- Raccourcir l'ID du contrôleur dans exec-root pour ne pas atteindre UNIX_PATH_MAX. docker/engine#424
- Correction d'une panique dans drivers/overlay/encryption.go. docker/engine#424
- Correction de la course entre us et udev. docker/engine#439
Runtime
- Mise à jour vers Golang 1.12.16. moby/moby#40433
- Mise à jour de l'exécutable containerd vers v1.2.12. moby/moby#40453
- Mise à jour vers runc v1.0.0-rc10. moby/moby#40433
- Correction d'une possible panique de runtime dans Lgetxattr. docker/engine#454
- rootless: fix proxying UDP packets. docker/engine#434
19.03.5
2019-11-14
Builder
- builder-next: Ajouté
entitlements
dans la configuration builder. docker/engine#412 - Correction de builder-next: erreurs de permission lors de l'utilisation de secrets ou de transfert ssh avec userns-remap. docker/engine#420
- Correction de builder-next: copier un lien symbolique à l'intérieur d'un répertoire déjà copié. docker/engine#420
Packaging
- Support RHEL 8 packages
Runtime
- Mise à jour vers Golang vers 1.12.12. docker/engine#418
- Mise à jour vers RootlessKit vers v0.7.0 pour renforcer slirp4netns avec espace de montage et seccomp. docker/engine#397
- Correction pour propager l'erreur GetContainer de l'événement de traitement. docker/engine#407
- Correction de push d'image OCI. docker/engine#405
19.03.4
2019-10-17
Réseau
- Annulation des modifications de libnetwork pour résoudre le problème de chaîne iptables
DOCKER-USER
. docker/engine#404
Problèmes connus
Existant
- Dans certaines circonstances avec des clusters importants, Docker information might, as part of the Swarm section,
include the error
code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304)
. This does not indicate any failure or misconfiguration by the user, and requires no response. - Conflit de port orchestrateur peut se produire lors de la redéploiement de tous les services en tant que nouveau. En raison de nombreuses demandes de gestionnaire swarm
dans un court laps de temps, certains services ne sont pas en mesure d'écouter le trafic et provoquent une erreur
404
- Orchestrator port conflict can occur when redeploying all services as new. Due to many Swarm manager
requests in a short amount of time, some services are not able to receive traffic and are causing a
404
error after being deployed.- Workaround: restart all tasks via
docker service update --force
.
- Workaround: restart all tasks via
- CVE-2018-15664 symlink-exchange attack with directory traversal. Workaround until proper fix is available in upcoming patch release:
docker pause
container before doing file operations. moby/moby#39252 docker cp
regression due to CVE mitigation. An error is produced when the source ofdocker cp
is set to/
.
19.03.3
2019-10-08
Security
- Patched
runc
in containerd. CVE-2017-18367
Builder
-
Fix builder-next: resolve digest for third party registries. docker/engine#339
-
Fix builder-next: user namespace builds when daemon started with socket activation. docker/engine#373
-
Fix builder-next; session: release forwarded ssh socket connection per connection. docker/engine#373
-
Fix build-next: llbsolver: error on multiple cache importers. docker/engine#373
Client
-
Added support for Docker Template 0.1.6.
-
Mitigate against YAML files that have excessive aliasing. docker/cli#2119
Runtime
-
Bump Golang to 1.12.10. docker/engine#387
-
Bump containerd to 1.2.10. docker/engine#385
-
Distribution: modify warning logic when pulling v2 schema1 manifests. docker/engine#368
-
Fix
POST /images/create
returning a 500 status code when providing an incorrect platform option. docker/engine#365 -
Fix
POST /build
returning a 500 status code when providing an incorrect platform option. docker/engine#365 -
Fix panic on 32-bit ARMv7 caused by misaligned struct member. docker/engine#363
-
Fix to return "invalid parameter" when linking to non-existing container. docker/engine#352
-
Fix overlay2: busy error on mount when using kernel >= 5.2. docker/engine#332
-
Fix
docker rmi
stuck in certain misconfigured systems, e.g. dead NFS share. docker/engine#335 -
Fix handling of blocked I/O of exec'd processes. docker/engine#296
-
Fix jsonfile logger: follow logs stuck when
max-size
is set andmax-file=1
. docker/engine#378
Known Issues
New
DOCKER-USER
iptables chain is missing: docker/for-linux#810. Users cannot perform additional container network traffic filtering on top of this iptables chain. You are not affected by this issue if you are not customizing iptable chains on top ofDOCKER-USER
.- Workaround: Insert the iptables chain after the docker daemon starts.
For example:
iptables -N DOCKER-USER iptables -I FORWARD -j DOCKER-USER iptables -A DOCKER-USER -j RETURN
- Workaround: Insert the iptables chain after the docker daemon starts.
For example:
Existing
- In some circumstances with large clusters, docker information might, as part of the Swarm section,
include the error
code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304)
. This does not indicate any failure or misconfiguration by the user, and requires no response. - Orchestrator port conflict can occur when redeploying all services as new. Due to many swarm manager
requests in a short amount of time, some services are not able to receive traffic and are causing a
404
error after being deployed.- Workaround: restart all tasks via
docker service update --force
.
- Workaround: restart all tasks via
- CVE-2018-15664 symlink-exchange attack with directory traversal. Workaround until proper fix is available in upcoming patch release:
docker pause
container before doing file operations. moby/moby#39252 docker cp
regression due to CVE mitigation. An error is produced when the source ofdocker cp
is set to/
.
19.03.2
2019-09-03
Builder
-
Fix
COPY --from
to non-existing directory on Windows. moby/moby#39695 -
Fix builder-next: metadata commands not having created time in history. moby/moby#39456
-
Fix builder-next: close progress on layer export error. moby/moby#39782
-
Update buildkit to 588c73e1e4. moby/moby#39781
Client
-
Fix Windows absolute path detection on non-Windows docker/cli#1990
-
Fix to zsh completion script for
docker login --username
. -
Fix context: produce consistent output on
context create
. docker/cli#1985 -
Fix support for HTTP proxy env variable. docker/cli#2059
Logging
- Fix for reading journald logs. moby/moby#37819 moby/moby#38859
Networking
- Prevent panic on network attached to a container with disabled networking. moby/moby#39589
Runtime
-
Bump Golang to 1.12.8.
-
Fix a potential engine panic when using XFS disk quota for containers. moby/moby#39644
Swarm
- Fix an issue where nodes with several tasks could not be removed. docker/swarmkit#2867
Known issues
-
In some circumstances with large clusters, docker information might, as part of the Swarm section, include the error
code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304)
. This does not indicate any failure or misconfiguration by the user, and requires no response. -
Orchestrator port conflict can occur when redeploying all services as new. Due to many swarm manager requests in a short amount of time, some services are not able to receive traffic and are causing a
404
error after being deployed.- Workaround: restart all tasks via
docker service update --force
.
- Workaround: restart all tasks via
-
Traffic cannot egress the HOST because of missing Iptables rules in the FORWARD chain The missing rules are :
/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
- Workaround: Add these rules back using a script and cron definitions. The script
must contain '-C' commands to check for the presence of a rule and '-A' commands to add
rules back. Run the script on a cron in regular intervals, for example, every
minutes. - Affected versions: 18.09.1, 19.03.0
- Workaround: Add these rules back using a script and cron definitions. The script
must contain '-C' commands to check for the presence of a rule and '-A' commands to add
rules back. Run the script on a cron in regular intervals, for example, every
-
CVE-2018-15664 symlink-exchange attack with directory traversal. Workaround until proper fix is available in upcoming patch release:
docker pause
container before doing file operations. moby/moby#39252 -
docker cp
regression due to CVE mitigation. An error is produced when the source ofdocker cp
is set to/
.
19.03.1
2019-07-25
Security
- Fixed loading of nsswitch based config inside chroot under Glibc. CVE-2019-14271
Known issues
-
In some circumstances, in large clusters, docker information might, as part of the Swarm section, include the error
code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304)
. This does not indicate any failure or misconfiguration by the user, and requires no response. -
Orchestrator port conflict can occur when redeploying all services as new. Due to many swarm manager requests in a short amount of time, some services are not able to receive traffic and are causing a
404
error after being deployed.- Workaround: restart all tasks via
docker service update --force
.
- Workaround: restart all tasks via
-
Traffic cannot egress the HOST because of missing Iptables rules in the FORWARD chain The missing rules are :
/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
- Workaround: Add these rules back using a script and cron definitions. The script
must contain '-C' commands to check for the presence of a rule and '-A' commands to add
rules back. Run the script on a cron in regular intervals, for example, every
minutes. - Affected versions: 18.09.1, 19.03.0
- Workaround: Add these rules back using a script and cron definitions. The script
must contain '-C' commands to check for the presence of a rule and '-A' commands to add
rules back. Run the script on a cron in regular intervals, for example, every
-
CVE-2018-15664 symlink-exchange attack with directory traversal. Workaround until proper fix is available in upcoming patch release:
docker pause
container before doing file operations. moby/moby#39252 -
docker cp
regression due to CVE mitigation. An error is produced when the source ofdocker cp
is set to/
.
19.03.0
2019-07-22
Builder
-
Fixed
COPY --from
to preserve ownership. moby/moby#38599 -
builder-next:
- Added inline cache support
--cache-from
. docker/engine#215 - Outputs configuration allowed. moby/moby#38898
- Fixed gcr workaround token cache. docker/engine#212
stopprogress
called on download error. docker/engine#215- Buildkit now uses systemd's
resolv.conf
. docker/engine#260. - Setting buildkit outputs now allowed. docker/cli#1766
- Look for Dockerfile specific dockerignore file (for example, Dockerfile.dockerignore) for ignored paths. docker/engine#215
- Automatically detect if process execution is possible for x86, arm, and arm64 binaries. docker/engine#215
- Updated buildkit to 1f89ec1. docker/engine#260
- Use Dockerfile frontend version
docker/dockerfile:1.1
by default. docker/engine#215 - No longer rely on an external image for COPY/ADD operations. docker/engine#215
- Added inline cache support
Client
- Added
--pids-limit
flag todocker update
. docker/cli#1765 - Added systctl support for services. docker/cli#1754
- Added support for
template_driver
in compose files. docker/cli#1746 - Added
--device
support for Windows. docker/cli#1606 - Added support for Data Path Port configuration. docker/cli#1509
- Added fast context switch: commands. docker/cli#1501
- Support added for
--mount type=bind,bind-nonrecursive,...
docker/cli#1430 - Added maximum replicas per node. docker/cli#1612
- Added option to pull images quietly. docker/cli#882
- Added a separate
--domainname
flag. docker/cli#1130 - Added support for secret drivers in
docker stack deploy
. docker/cli#1783 - Added ability to use swarm
Configs
asCredentialSpecs
on services. docker/cli#1781 - Added
--security-opt systempaths=unconfined
support. docker/cli#1808 - Added basic framework for writing and running CLI plugins. docker/cli#1564 docker/cli#1898
- Bumped Docker App to v0.8.0. docker/docker-ce-packaging#341
- Added support for Docker buildx. docker/docker-ce-packaging#336
- Added support for Docker Assemble v0.36.0.
- Added support for Docker Cluster v1.0.0-rc2.
- Added support for Docker Template v0.1.4.
- Added support for Docker Registry v0.1.0-rc1.
- Bumped google.golang.org/grpc to v1.20.1. docker/cli#1884
- CLI changed to pass driver specific options to
docker run
. docker/cli#1767 - Bumped Golang 1.12.5. docker/cli#1875
docker system info
output now segregates information relevant to the client and daemon. docker/cli#1638- (Experimental) When targeting Kubernetes, added support for
x-pull-secret: some-pull-secret
in compose-files service configs. docker/cli#1617 - (Experimental) When targeting Kubernetes, added support for
x-pull-policy: <Never|Always|IfNotPresent>
in compose-files service configs. docker/cli#1617 - cp, save, export: Now preventing overwriting irregular files. docker/cli#1515
- npipe volume type on stack file now allowed. docker/cli#1195
- Fixed tty initial size error. docker/cli#1529
- Fixed problem with labels copying value from environment variables. docker/cli#1671
API
- Updated API version to v1.40. moby/moby#38089
- Added warnings to
/info
endpoint, and moved detection to the daemon. moby/moby#37502 - Added HEAD support for
/_ping
endpoint. moby/moby#38570 - Added
Cache-Control
headers to disable caching/_ping
endpoint. moby/moby#38569 - Added
containerd
,runc
, anddocker-init
versions to/version
. moby/moby#37974 - Added undocumented
/grpc
endpoint and registered BuildKit's controller. moby/moby#38990
Experimental
- Enabled checkpoint/restore of containers with TTY. moby/moby#38405
- LCOW: Added support for memory and CPU limits. moby/moby#37296
- Windows: Added ContainerD runtime. moby/moby#38541
- Windows: LCOW now requires Windows RS5+. moby/moby#39108
Security
- mount: added BindOptions.NonRecursive (API v1.40). moby/moby#38003
- seccomp: whitelisted
io_pgetevents()
. moby/moby#38895 - seccomp:
ptrace(2)
for 4.8+ kernels now allowed. moby/moby#38137
Runtime
- Running
dockerd
as a non-root user (Rootless mode) is now allowed. moby/moby#380050 - Rootless: optional support provided for
lxc-user-nic
SUID binary. docker/engine#208 - Added DeviceRequests to HostConfig to support NVIDIA GPUs. moby/moby#38828
- Added
--device
support for Windows. moby/moby#37638 - Added
memory.kernelTCP
support for linux. moby/moby#37043 - Windows credential specs can now be passed directly to the engine. moby/moby#38777
- Added pids-limit support in docker update. moby/moby#32519
- Added support for exact list of capabilities. moby/moby#38380
- daemon: Now use 'private' ipc mode by default. moby/moby#35621
- daemon: switched to semaphore-gated WaitGroup for startup tasks. moby/moby#38301
- Now use
idtools.LookupGroup
instead of parsing/etc/group
file for docker.sock ownership to fix:api.go doesn't respect nsswitch.conf
. moby/moby#38126 - cli: fixed images filter when using multi reference filter. moby/moby#38171
- Bumped Golang to 1.12.5. docker/engine#209
- Bumped
containerd
to 1.2.6. moby/moby#39016 - Bumped
runc
to 1.0.0-rc8, opencontainers/selinux v1.2.2. docker/engine#210 - Bumped
google.golang.org/grpc
to v1.20.1. docker/engine#215 - Performance optimized in aufs and layer store for massively parallel container creation/removal. moby/moby#39135 moby/moby#39209
- Root is now passed to chroot for chroot Tar/Untar (CVE-2018-15664) moby/moby#39292
- Fixed
docker --init
with /dev bind mount. moby/moby#37665 - The right device number is now fetched when greater than 255 and using the
--device-read-bps
option. moby/moby#39212 - Fixed
Path does not exist
error when path definitely exists. moby/moby#39251
Networking
- Moved IPVLAN driver out of experimental. moby/moby#38983
- Added support for 'dangling' filter. moby/moby#31551 docker/libnetwork#2230
- Load balancer sandbox is now deleted when a service is updated with
--network-rm
. docker/engine#213 - Windows: Now forcing a nil IP specified in
PortBindings
to IPv4zero (0.0.0.0). docker/libnetwork#2376
Swarm
- Added support for maximum replicas per node. moby/moby#37940
- Added support for GMSA CredentialSpecs from Swarmkit configs. moby/moby#38632
- Added support for sysctl options in services. moby/moby#37701
- Added support for filtering on node labels. moby/moby#37650
- Windows: Support added for named pipe mounts in docker service create + stack yml. moby/moby#37400
- VXLAN UDP Port configuration now supported. moby/moby#38102
- Now using Service Placement Constraints in Enforcer. docker/swarmkit#2857
- Increased max recv gRPC message size for nodes and secrets. docker/engine#256
Logging
- Enabled gcplogs driver on Windows. moby/moby#37717
- Added zero padding for RFC5424 syslog format. moby/moby#38335
- Added
IMAGE_NAME
attribute tojournald
log events. moby/moby#38032
Deprecation
- Deprecate image manifest v2 schema1 in favor of v2 schema2. Future version of Docker will remove support for v2 schema1 althogether. moby/moby#39365
- Removed v1.10 migrator. moby/moby#38265
- Now skipping deprecated storage-drivers in auto-selection. moby/moby#38019
- Deprecated
aufs
storage driver and added warning. moby/moby#38090 - Removed support for 17.09.
For more information on deprecated flags and APIs, refer to deprecation information for target removal dates.
Known issues
-
In some circumstances with large clusters, docker information might, as part of the Swarm section, include the error
code = ResourceExhausted desc = grpc: received message larger than max (5351376 vs. 4194304)
. This does not indicate any failure or misconfiguration by the user, and requires no response. -
Orchestrator port conflict can occur when redeploying all services as new. Due to many swarm manager requests in a short amount of time, some services are not able to receive traffic and are causing a
404
error after being deployed.- Workaround: restart all tasks via
docker service update --force
.
- Workaround: restart all tasks via
-
Traffic cannot egress the HOST because of missing Iptables rules in the FORWARD chain The missing rules are :
/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
- Workaround: Add these rules back using a script and cron definitions. The script
must contain '-C' commands to check for the presence of a rule and '-A' commands to add
rules back. Run the script on a cron in regular intervals, for example, every
minutes. - Affected versions: 18.09.1, 19.03.0
- Workaround: Add these rules back using a script and cron definitions. The script
must contain '-C' commands to check for the presence of a rule and '-A' commands to add
rules back. Run the script on a cron in regular intervals, for example, every
-
CVE-2018-15664 symlink-exchange attack with directory traversal. Workaround until proper fix is available in upcoming patch release:
docker pause
container before doing file operations. moby/moby#39252 -
docker cp
regression due to CVE mitigation. An error is produced when the source ofdocker cp
is set to/
.