Le travail a pris du temps, car la dernière mise à jour majeure de Docker Engine avait eu lieu en juillet 2019 avec la version 19.03. Aujourd’hui, le moteur arrive en version 20.10. Benjamin de St Paer-Gotch, responsable produit chez Docker, a fourni des détails sur cette itération dans un blog en rappelant que le moteur comprend une application client-serveur avec un serveur dockerd, des API et un client CLI.

S’appuyant sur un noyau Linux, Docker Engine a introduit cgroups v2 pour isoler les processus en cours d’exécution et les fichiers associés. Docker se sert des espaces de noms (spacenames) avec cgroups pour réaliser cette isolation. Avec ce système, l’éditeur peut ainsi basculer d’un mode « rootless » (l’exécution de l’ensemble de l’environnement Docker sans les privilèges root) à un mode entièrement pris en charge.

Des options supplémentaires pour le CLI

Autre point d’amélioration, le moteur supporte pour la première fois la double journalisation des évènements. Cela signifie que des outils tiers de journalisation peuvent désormais lire les logs Docker et ainsi apporter plus de transparence lors de cette collecte automatisée. A noter que la version 20.10 continue de supporter CentOS8 et a ajouté la prise en charge d’Ubunti 20.10 et Fedora 33.

Un effort particulier a été mené sur la console de ligne de commande avec plusieurs options possibles.

- le docker push fonctionne désormais de manière similaire au docker pull, de sorte que le nom de l’image est poussé sans tag, seul le tag :latest sera poussé au lieu de tous les tags.

- les variables d’environnement peuvent maintenant être stockées dans un fichier et transmises lors de docker exec. Le nouveau fichier -env-file permet d’analyser les variables d’environnement à partir du fichier spécifié.

- les flag pour les options --pull=missing|always|never avec les commandes create et run accordent un plus grand contrôle au moment où il faut extraire les images.

- Le support des jobs Swarm pour gérer les batchs