Notes de version Docker Engine 25.0
Cette page décrit les derniers changements, ajouts, problèmes connus et corrections pour Docker Engine version 25.0.
Pour plus d'informations sur :
- Les fonctionnalités dépréciées et supprimées, voir Fonctionnalités dépréciées du moteur.
- Les changements de l'API du moteur, voir Historique des versions de l'API du moteur.
25.0.5
2024-03-19Pour 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-07Pour 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 champCreated
(auparavant c'était0001-01-01T00:00:00Z
) si le champCreated
était manquant dans la configuration de l'image. moby/moby#47451 - API : Remplissage d'un champ
Created
manquant dansGET /images/{id}/json
avec0001-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é dansNetworkSettings.Networks
. moby/moby#47510
Mises à jour d'empaquetage
- Mise à niveau du runtime Go vers 1.21.8. moby/moby#47503
- Mise à niveau de RootlessKit vers v2.0.2. moby/moby#47508
- Mise à niveau de Compose vers v2.24.7. docker/docker-ce-packaging#998
- Mise à niveau de Buildx vers v0.13.0. docker/docker-ce-packaging#997
25.0.3
2024-02-06Pour 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
- Suppression du support pour Ubuntu Lunar (23.04). docker/ce-packaging#986
25.0.2
2024-01-31Pour 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
- Mise à niveau de containerd vers v1.6.28.
- Mise à niveau de containerd vers v1.7.13 (binaires statiques uniquement). moby/moby#47280
- Mise à niveau de runc vers v1.1.12. moby/moby#47269
- Mise à niveau de Compose vers v2.24.5. docker/docker-ce-packaging#985
- Mise à niveau de BuildKit vers v0.12.5. moby/moby#47273
25.0.1
2024-01-23Pour 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
ouip
. 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
- Mise à niveau de Compose vers
2.24.2
. docker/docker-ce-packaging#981
25.0.0
2024-01-19Pour une liste complète des pull requests et changements dans cette version, consultez les jalons GitHub pertinents :
NoteDans 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#45534Le 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 pilotedocker
. 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
ouoverride
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 utiliserstdin
. docker/cli#4346 - Ajout de support pour les champs
mac-address
etlink-local-ip
dans le format long--network
. docker/cli#4419 - Ajout de support pour spécifier plusieurs drapeaux
--network
avecdocker container create
etdocker 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
etContainerCreate
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îneINPUT
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
, etsave
. 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
, etHEALTHCHECK
. 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
ouCOPY
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
- Mise à niveau de l'API vers v1.44. moby/moby#45468
- Mise à niveau de Compose vers
2.24.1
. docker/docker-ce-packaging#980 - Mise à niveau de containerd vers v1.7.12 (binaires statiques uniquement). moby/moby#47070
- Mise à niveau du runtime Go vers 1.21.6. moby/moby#47053
- Mise à niveau de runc vers v1.1.11. moby/moby#47007
- Mise à niveau de BuildKit vers v0.12.4. moby/moby#46882
- Mise à niveau de Buildx vers v0.12.1. docker/docker-ce-packaging#979
Supprimé
- API : Suppression du champ VirtualSize pour les points de terminaison
GET /images/json
etGET /images/{id}/json
. moby/moby#45469 - Suppression du pilote de stockage
devicemapper
. moby/moby#43637 - Suppression des options orchestrateur obsolètes. docker/cli#4366
- Suppression du support pour le système d'initialisation Upstart Debian. moby/moby#45548, moby/moby#45551
- Suppression de l'option
--oom-score-adjust
daemon. moby/moby#45484 - Suppression de l'avertissement pour le fichier
~/.dockercfg
obsolète. docker/cli#4281 - Suppression du pilote de journalisation
logentries
. moby/moby#46925
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 filtreis-automated
pourdocker search
. Avis de dépréciation - API : Dépréciation des propriétés
Container
etContainerConfig
pourGET /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 commandetar
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émentationtar
par défaut. Pour installergnu-tar
en utilisant Homebrew :$ brew install gnu-tar
Après l'installation, ajoutez le binaire
gnu-tar
à votrePATH
, par exemple en mettant à jour votre fichier.zshrc
:$ echo 'PATH="/opt/homebrew/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.zshrc $ source ~/.zshrc