⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Notes de version Docker Engine 25.0

Table des matières

Cette page décrit les derniers changements, ajouts, problèmes connus et corrections pour Docker Engine version 25.0.

Pour plus d'informations sur :

25.0.5

2024-03-19

Pour une liste complète des pull requests et changements dans cette version, consultez les jalons GitHub pertinents :

Sécurité

Cette version contient une correction de sécurité pour CVE-2024-29018, une exfiltration de données potentielle des réseaux 'internes' via des serveurs DNS autoritaires.

Corrections de bugs et améliorations

  • CVE-2024-29018 : Ne pas transférer les requêtes vers des serveurs DNS externes pour un conteneur qui n'est connecté qu'à un réseau 'interne'. Auparavant, les requêtes étaient transférées si le serveur DNS de l'hôte fonctionnait sur une adresse de bouclage, comme 127.0.0.53 de systemd. moby/moby#47589

  • plugin : correction du montage de /etc/hosts lors de l'exécution dans UserNS. moby/moby#47588

  • rootless : correction de open /etc/docker/plugins: permission denied. moby/moby#47587

  • Correction de plusieurs exécutions parallèles de docker build qui entraînaient une fuite d'espace disque. moby/moby#47527

25.0.4

2024-03-07

Pour une liste complète des pull requests et changements dans cette version, consultez les jalons GitHub pertinents :

Corrections de bugs et améliorations

  • Restauration des noms DNS pour les conteneurs dans le réseau "nat" par défaut sur Windows. moby/moby#47490
  • Correction de docker start échouant quand utilisé avec --checkpoint moby/moby#47466
  • Ne pas appliquer les nouvelles règles de validation pour les réseaux swarm existants moby/moby#47482
  • Restauration de la connectivité IP entre l'hôte et les conteneurs sur un réseau bridge interne. moby/moby#47481
  • Correction d'une régression introduite dans v25.0 qui empêchait le builder classique d'ajouter une archive tar avec xattrs créée sur un OS non-Linux moby/moby#47483
  • magasin d'images containerd : Correction du pull d'image n'émettant pas le statut Pulling fs layer moby/moby#47484
  • API : Pour préserver la compatibilité ascendante, rendre les montages en lecture seule non-récursifs par défaut lors de l'utilisation de clients plus anciens (versions API < v1.44). moby/moby#47393
  • API : GET /images/{id}/json omet le champ Created (auparavant c'était 0001-01-01T00:00:00Z) si le champ Created était manquant dans la configuration de l'image. moby/moby#47451
  • API : Remplissage d'un champ Created manquant dans GET /images/{id}/json avec 0001-01-01T00:00:00Z pour les versions API <= 1.43. moby/moby#47387
  • API : Correction d'une régression qui causait l'échec des connexions de socket API à signaler un échec de négociation de version API à la place. moby/moby#47470
  • API : Préservation de la configuration d'endpoint fournie dans une requête d'API de création de conteneur, quand une adresse MAC à l'échelle du conteneur est spécifiée, mais que le nom ou l'ID NetworkMode n'est pas le même que le nom ou l'ID utilisé dans NetworkSettings.Networks. moby/moby#47510

Mises à jour d'empaquetage

25.0.3

2024-02-06

Pour une liste complète des pull requests et changements dans cette version, consultez les jalons GitHub pertinents :

Corrections de bugs et améliorations

  • magasin d'images containerd : Correction d'un bug où docker image history échouerait si un manifeste n'était pas trouvé dans le magasin de contenu. moby/moby#47348

  • S'assurer qu'une adresse MAC générée n'est pas restaurée quand un conteneur est redémarré, mais qu'une adresse MAC configurée est préservée. moby/moby#47304

    Note
    • Les conteneurs créés avec Docker Engine version 25.0.0 peuvent avoir des adresses MAC dupliquées. Ils doivent être recréés.
    • Les conteneurs avec des adresses MAC définies par l'utilisateur créés avec Docker Engine versions 25.0.0 ou 25.0.1 reçoivent de nouvelles adresses MAC quand démarrés avec Docker Engine version 25.0.2. Ils doivent également être recréés.
  • Correction de docker save <image>@<digest> produisant une archive OCI avec index sans manifestes. moby/moby#47294

  • Correction d'un bug empêchant la création de réseaux bridge avec un MTU supérieur à 1500 sur RHEL et CentOS 7. moby/moby#47308, moby/moby#47311

  • Correction d'un bug où les conteneurs ne peuvent pas communiquer sur un réseau internal. moby/moby#47303

  • Correction d'un bug où la valeur de l'option daemon ipv6 était ignorée. moby/moby#47310

  • Correction d'un bug où essayer d'installer un pulling en utilisant une révision digest causerait une panique. moby/moby#47323

  • Correction d'une condition de course potentielle dans le superviseur containerd géré. moby/moby#47313

  • Correction d'un problème avec le pilote de log journald empêchant les logs de conteneur d'être suivis correctement avec systemd version 255. moby/moby#47243

  • seccomp : Mise à jour du profil seccomp intégré pour inclure les syscalls ajoutés dans kernel v5.17 - v6.7 pour aligner le profil avec le profil utilisé par containerd. moby/moby#47341

  • Windows : Correction du cache non utilisé lors de la construction d'images basées sur des versions Windows plus anciennes que la version de l'hôte. moby/moby#47307, moby/moby#47337

Mises à jour d'empaquetage

25.0.2

2024-01-31

Pour une liste complète des pull requests et changements dans cette version, consultez les jalons GitHub pertinents :

Sécurité

Cette version contient des corrections de sécurité pour les CVE suivantes affectant Docker Engine et ses composants.

CVE Composant Version de correction Gravité
CVE-2024-21626 runc 1.1.12 Élevée, CVSS 8.6
CVE-2024-23651 BuildKit 1.12.5 Élevée, CVSS 8.7
CVE-2024-23652 BuildKit 1.12.5 Élevée, CVSS 8.7
CVE-2024-23653 BuildKit 1.12.5 Élevée, CVSS 7.7
CVE-2024-23650 BuildKit 1.12.5 Moyenne, CVSS 5.5
CVE-2024-24557 Docker Engine 25.0.2 Moyenne, CVSS 6.9

Les impacts potentiels des vulnérabilités ci-dessus incluent :

  • Accès non autorisé au système de fichiers hôte
  • Compromission de l'intégrité du cache de construction
  • Dans le cas de CVE-2024-21626, un scénario qui pourrait conduire à une évasion complète du conteneur

Pour plus d'informations sur les problèmes de sécurité traités dans cette version, consultez le billet de blog. Pour les détails sur chaque vulnérabilité, voir l'avis de sécurité pertinent :

Mises à jour d'empaquetage

25.0.1

2024-01-23

Pour une liste complète des pull requests et changements dans cette version, consultez les jalons GitHub pertinents :

Corrections de bugs et améliorations

  • API : Correction du code de statut HTTP incorrect pour les conteneurs avec une configuration réseau invalide créés avant la mise à niveau vers Docker Engine v25.0. moby/moby#47159
  • S'assurer qu'une adresse MAC basée sur l'adresse IP d'un conteneur est régénérée quand le conteneur est arrêté et redémarré, au cas où les adresses IP/MAC générées auraient été réutilisées. moby/moby#47171
  • Correction de host-gateway-ip ne fonctionnant pas pendant la construction quand non défini via la configuration. moby/moby#47192
  • Correction d'un bug qui empêchait un conteneur d'être renommé deux fois. moby/moby#47196
  • Correction d'un problème causant l'ajout de leur ID court aux alias réseau des conteneurs lors de leur inspection. moby/moby#47182
  • Correction d'un problème dans la détection si un contexte de construction distant est un dépôt Git. moby/moby#47136
  • Correction d'un problème avec l'ordre des couches dans les manifestes OCI. moby/moby#47150
  • Correction d'erreur de montage de volume lors du passage d'une option de montage addr ou ip. moby/moby#47185
  • Amélioration du message d'erreur relatif aux attributs étendus qui ne peuvent pas être définis en raison de noms d'attributs mal namespacés. moby/moby#47178
  • Swarm : Correction de start_interval n'étant pas passé à la configuration du conteneur. moby/moby#47163

Mises à jour d'empaquetage

25.0.0

2024-01-19

Pour une liste complète des pull requests et changements dans cette version, consultez les jalons GitHub pertinents :

Note

Dans les versions antérieures de Docker Engine, les montages récursifs (sous-montages) seraient toujours montés en écriture, même lors de la spécification d'un montage en lecture seule. Ce comportement a changé dans v25.0.0, pour les hôtes fonctionnant sur kernel version 5.12 ou ultérieure. Maintenant, les montages bind en lecture seule sont récursivement en lecture seule par défaut.

Pour obtenir le même comportement que les versions antérieures, vous pouvez spécifier l'option bind-recursive pour le flag --mount.

$ docker run --mount type=bind,src=SRC,dst=DST,readonly,bind-recursive=writable IMAGE

New

  • Le daemon utilise maintenant le LimitNOFILE par défaut de systemd. Dans les versions antérieures de Docker Engine, ce limite était défini à infinity. Cela aurait causé des problèmes avec les versions récentes de systemd, où la limite dure a été augmentée, causant les programmes qui ajustent leurs comportements en fonction des ulimits à consommer une grande quantité de mémoire. moby/moby#45534

    Le nouveau paramètre rend les conteneurs se comporter de la même manière que les programmes en cours d'exécution sur l'hôte, mais pourrait causer des programmes qui font des suppositions incorrectes en fonction de la limite douce à se comporter mal. Pour obtenir le comportement précédent, vous pouvez définir LimitNOFILE=1048576.

    Ce changement n'affecte actuellement que les conteneurs créés avec docker build lors de l'utilisation de BuildKit avec le pilote docker . Les futures versions de containerd utiliseront également ce limite, ce qui causera ce comportement affecter tous les conteneurs, pas seulement les conteneurs de construction.

    Si vous rencontrez des problèmes avec la limite plus élevée dans systemd v240 ou plus tard, considérez d'ajouter un fichier drop-in ou override système pour configurer les paramètres ulimit pour votre configuration. La documentation Flatcar Container Linux a un excellent article couvrant ce sujet en détail.

  • Ajout de suivi OpenTelemetry. moby/moby#45652, moby/moby#45579

  • Ajout de support pour les appareils CDI sous Linux. moby/moby#45134, docker/cli#4510, moby/moby#46004

  • Ajout d'une autre intervalle à être utilisée par les healthchecks pendant la période de démarrage du conteneur. moby/moby#40894, docker/cli#4405, moby/moby#45965

  • Ajout d'un drapeau --log-format à dockerd pour contrôler le format de journalisation : texte (par défaut) ou JSON. moby/moby#45737

  • Ajout de support pour les montages en lecture seule récursifs. moby/moby#45278, moby/moby#46037

  • Ajout de support pour filtrer les images basées sur l'horodatage avec docker image ls --filter=until=<timestamp>. moby/moby#46577

Corrections de bugs et améliorations

  • API : Correction du message d'erreur pour les politiques invalides à ValidateRestartPolicy. moby/moby#46352
  • API : Mise à jour de l'endpoint /info pour utiliser singleflight. moby/moby#45847
  • Ajout d'un message d'erreur pour spécifier un nom de fichier Dockerfile avec -f, et également utiliser stdin. docker/cli#4346
  • Ajout de support pour les champs mac-address et link-local-ip dans le format long --network. docker/cli#4419
  • Ajout de support pour spécifier plusieurs drapeaux --network avec docker container create et docker run. moby/moby#45906
  • Automatiquement activer IPv6 sur un réseau lorsqu'un sous-réseau IPv6 est spécifié. moby/moby#46455
  • Ajout de support pour les réseaux de superposition sur IPv6 transport. moby/moby#46790
  • La reconfiguration est maintenant plus robuste : si une erreur se produit lors du processus de reconfiguration, aucune modification de configuration n'est appliquée. moby/moby#43980
  • Restauration de conteneurs : Les conteneurs avec suppression automatique (docker run --rm) ne sont plus forcément supprimés sur le redémarrage de l'engin. moby/moby#46857
  • Restauration de conteneurs : Les conteneurs restaurés en direct seront maintenant donnés une autre période de démarrage de contrôle lorsque le daemon redémarre. moby/moby#47051
  • Le statut d'intégrité du conteneur est vidé sur le disque moins fréquemment, réduisant l'usure sur le stockage flash. moby/moby#47044
  • S'assurer que les noms de réseau sont uniques. moby/moby#46251
  • S'assurer que la métadonnée de couche de réseau de superposition2 est correcte. moby/moby#46471
  • Correction du message de progression Downloading sur le tirage d'image. moby/moby#46515
  • Correction de NetworkConnect et ContainerCreate avec validation de données améliorée, et retour de toutes les erreurs de validation à la fois. moby/moby#46183
  • Correction de com.docker.network.host_ipv4 option lorsque IPv6 et ip6tables sont activés. moby/moby#46446
  • Correction de cleanupContainer daemon si containerd est arrêté. moby/moby#46213
  • Correction de retour de codes d'état HTTP incorrects pour les erreurs de libnetwork. moby/moby#46146
  • Correction de diverses questions avec les filtres API images/json et liste des images. moby/moby#46034
  • Les volumes CIFS résolvent maintenant correctement le FQDN. moby/moby#46863
  • Amélioration de la validation de l'option de chemin proxy utilisateur userland-proxy-path daemon. La validation se produit maintenant lors de la démarrage du daemon, au lieu de produire une erreur lors de la démarrage d'un conteneur avec mappage de port. moby/moby#47000
  • Définir l'adresse MAC de l'interface du conteneur lorsque le mode réseau est un ID réseau court. moby/moby#46406
  • Trier les arguments de construction non consommés avant d'afficher dans la sortie de construction. moby/moby#45917
  • Le tarball de docker image save est maintenant OCI conforme. moby/moby#44598
  • Le daemon ne met plus de règles ACCEPT à la fin de la chaîne INPUT iptables pour les réseaux de superposition chiffrés. En fonction de la configuration du pare-feu, une règle peut être nécessaire pour autoriser le trafic de réseau de superposition chiffré entrant. moby/moby#45280
  • Déballage des couches avec des attributs étendus sur un système de fichiers incompatible échouera maintenant à la place de simplement ignorer les attributs étendus. moby/moby#45464
  • Mettre à jour l'option MTU daemon vers BridgeConfig et afficher un avertissement sur Windows. moby/moby#45887
  • Valider la configuration IPAM lors de la création d'un réseau. Automatiquement réparer les réseaux créés avant cette version où --ip-range est plus grand que --subnet. moby/moby#45759
  • Les conteneurs connectés uniquement aux réseaux internes n'auront maintenant aucun itinéraire par défaut défini, ce qui fera échouer le connect syscall. moby/moby#46603
  • magasin d'images containerd : Ajout d'événements image pour push, pull, et save. moby/moby#46405
  • magasin d'images containerd : Ajout de support pour tirer des images de schéma1 legacy. moby/moby#46513
  • magasin d'images containerd : Ajout de support pour tirer tous les tags. moby/moby#46485
  • magasin d'images containerd : Ajout de support pour le jeton de registre. moby/moby#46475
  • magasin d'images containerd : Ajout de support pour afficher le nombre de conteneurs qui utilisent une image. moby/moby#46511
  • magasin d'images containerd : Correction d'un bug lié aux instructions Dockerfile ONBUILD, MAINTAINER, et HEALTHCHECK. moby/moby#46313
  • magasin d'images containerd : Correction du message de progression Pulling from. moby/moby#46494
  • magasin d'images containerd : Ajout de support pour faire référence aux images via l'ID tronqué avec le préfixe sha256: moby/moby#46435
  • magasin d'images containerd : Correction de docker images affichant des couches intermédiaires par défaut. moby/moby#46423
  • magasin d'images containerd : Correction de vérification si la plateforme spécifiée existe lors de la récupération d'une image. moby/moby#46495
  • magasin d'images containerd : Correction d'erreurs lors de l'utilisation de plusieurs ADD ou COPY instructions avec le builder classique. moby/moby#46383
  • magasin d'images containerd : Correction d'erreurs de dépassement de pile lors de l'importation d'une image. moby/moby#46418
  • magasin d'images containerd : Amélioration de la sortie de progression docker pull moby/moby#46412
  • magasin d'images containerd : Imprimer le tag, le résumé et la taille après tirer une image. moby/moby#46384
  • magasin d'images containerd : Suppression de la panique de UpdateConfig. moby/moby#46433
  • magasin d'images containerd : Retour d'une erreur lorsqu'un tag d'image ressemble à un résumé. moby/moby#46492
  • magasin d'images containerd : docker images montre maintenant le temps et la date de création correcte de l'image moby/moby#46719
  • magasin d'images containerd : Correction d'un problème de gestion des paramètres d'espace utilisateur. moby/moby#46375
  • magasin d'images containerd : Ajout de support pour tirer tous les tags (docker pull -a) moby/moby#46618
  • magasin d'images containerd : Utiliser le nom de domaine dans la référence de l'image comme domaine d'authentification de registre par défaut. moby/moby#46779

Mises à jour d'empaquetage

Supprimé

Déprécié

  • Dépréciation des versions API plus anciennes que 1.24. Avis de dépréciation
  • Dépréciation du champ IsAutomated et filtre is-automated pour docker search. Avis de dépréciation
  • API : Dépréciation des propriétés Container et ContainerConfig pour GET /images/{id}/json (docker image inspect). moby/moby#46939

Limitations connues

Attributs étendus pour les fichiers tar

Dans cette version, le code qui gère les fichiers tar a été modifié pour être plus strict et produire une erreur lorsque la rédaction des attributs étendus (xattr) échoue. L'implémentation tar pour macOS ajoute des attributs étendus supplémentaires par défaut lors de la création de fichiers tar. Ces préfixes d'attributs ne sont pas des préfixes valides d'espace de noms xattr Linux, ce qui provoque une erreur lorsque Docker tente de traiter ces fichiers. Par exemple, si vous essayez d'utiliser un fichier tar avec une instruction Dockerfile ADD, vous pourriez voir un message d'erreur similaire à ce qui suit :

failed to solve: lsetxattr /sftp_key.ppk: operation not supported

Les messages d'erreur liés à la validation des attributs étendus ont été améliorés pour inclure plus de contexte dans v25.0.1, mais la limitation dans Docker de ne pouvoir traiter les fichiers reste. Les fichiers tar créés avec tar macOS en utilisant des arguments par défaut produisent une erreur lorsque le fichier tar est utilisé avec Docker.

En tant que solution de contournement, si vous avez besoin d'utiliser des fichiers tar avec Docker générés sur macOS, vous pouvez soit :

  • Utiliser le drapeau --no-xattr pour le commande tar macOS pour supprimer tous les attributs étendus. Si vous souhaitez conserver les attributs étendus, cette n'est pas une option recommandée.

  • Installez et utilisez gnu-tar pour créer les tarballs sur macOS au lieu de l'implémentation tar par défaut. Pour installer gnu-tar en utilisant Homebrew :

    $ brew install gnu-tar
    

    Après l'installation, ajoutez le binaire gnu-tar à votre PATH, par exemple en mettant à jour votre fichier .zshrc :

    $ echo 'PATH="/opt/homebrew/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.zshrc
    $ source ~/.zshrc