Please welcome Docker 1.13

Le 19 janvier dernier, la version 1.13 de Docker est sortie ! Comme à chaque version mineure (pour Docker car cela n’est pas si minime), elle apporte pas mal de correctifs et d’améliorations mais aussi quelques nouveautés bien sympathiques. Revenons rapidement sur celles-ci.

Unification et amélioration de la CLI

Petite remise dans le contexte. Hier, pour afficher la liste des conteneurs, il fallait taper docker ps, la liste des images docker images ou la liste des volumes docker volume ls.

Il était temps d’harmoniser tout ça !

Avec Docker 1.13, on dit au revoir à docker ps ou encore docker run et on dit bonjour à docker container ls ou encore docker container run. En réalité c’est encore supporté mais uniquement le temps de changer nos habitudes. On a donc maintenant une CLI bien plus uniforme et réorganisée au niveau des management commands. Facile et bien plus intuitif !

En exécutant la commande docker help, vous pourrez voir les différentes “management commands” mais également les “commands” historiques.


On notera aussi l’apparition de commandes dites “system” qui permettent d’obtenir des informations sur les interactions entre Docker et le système hôte. Par exemple nous pouvons connaître l’utilisation de l’espace disque par les différents objets de Docker (conteneurs, images, et volumes) grâce à la commande docker system df.

Une autre commande “system” va ravir les utilisateurs intensifs de Docker. Jusqu’à aujourd’hui, si vous vouliez faire un peu de ménage et supprimer les conteneurs inutilisés, il fallait exécuter docker rm $(docker ps -aq). Fastidieux vous ne trouvez pas ?

Désormais, la simple commande docker system prune permet de supprimer tous les objets non utilisés.

Et hop, une machine nettoyée ! 

Introduction de la notion de stacks

Lorsque vous avez besoin de démarrer plusieurs conteneurs, avec une liste de paramètres souvent longue de plusieurs kilomètres, vous utilisez Docker Compose. Pour lancer des conteneurs sur un cluster de machines, vous utilisez Docker Swarm mais les kilomètres étaient toujours présents.

Avec cette nouvelle version, vous pouvez désormais utiliser vos fichiers docker-compose.yml afin de déployer vos conteneurs sur un cluster Swarm : c’est la nouvelle notion de Stack !

Pour ceux qui avaient testé les stacks en version “expérimentale”, il était nécessaire de passer par un “bundle” (.DAB), étape transitoire entre Compose et Swarm. Fastidieux !

On remarque que la syntaxe du fichier est équivalente, on change de version et cela permet d’utiliser de nouvelles fonctionnalités. Par exemple on peut spécifier, comme dans le cas précédent, des instructions pour le déploiement avec Swarm, le nombre de réplicas et des stratégies updates ou encore de règles sur les machines à utiliser pour déployer nos instances. On peut ensuite déployer sa stack sur le cluster Swarm à l’aide de la commande : docker stack deploy –compose-file stack.yml. Facile !

Les petits nouveaux

Bien sûr, cette version de Docker améliore encore le support de Docker sur Windows : Swarm notamment est complètement supporté.

Mais ce n’est pas tout ! “Docker for Aws” et “Docker for Azure” ne sont plus en bêta !

Qu’est ce que c’est ? Et bien c’est tout simplement un outil qui va simplifier l’utilisation de Swarm chez ces hébergeurs de cloud. Par exemple pour AWS, après la configuration initiale de l’outil, “Docker for AWS” va s’occuper de créer des security groups et des sous-réseaux, instancier des managers et des workers et va vous permettre de déployer des applications sur votre cluster Swarm dans le cloud en quelques commandes !

Évidemment, cette liste n’est pas exhaustive. On pourrait parler de l’ajout de la gestion de secrets dans Swarm ou alors de la possibilité de passer en “expérimentale” à l’aide d’un simple flag. Pour des informations plus détaillées, je vous invite à lire les releases notes et bien sûr à essayer le tout sur votre poste.